I've reached some sort of paradox while writing my small game. I need an algorithm to decide the winner of the game, but it's a fairly complicated task so i decided to delegate the responsibility to a strategy object, and code a naive(inefficient) algorithm to begin with, then i can easily swap the algorithm for a more efficient one later.
The problem is, that the strategy object needs to know the game, and the game needs to know the strategy object, but as you can see there is no way of doing that since i need to create one object before i create another.
//Wrong code illustrating the concept Winner_strategy * winner_strategy; Game * game;
winner_strategy = new Winner_strategy(game); game = new Game_impl{winner_strategy};
BTW i know that it's best pratice to use unique_ptr, but i don't think it will make a difference here?
I have a class which I wrote and one of its object is "SerialPort" .NET class. In my MainWindow I created instance of my class called "SerialPortComm", then I send through some functions of mine, commands to the Serial Port, and I receive answers through "DataReceived" event.
But when I trying to use Dispatcher.BeginInvoke to write my data I have received (successfully), nothing shows on the RichTextBox which I'm trying to write to.
What can caused that, and How I can make it works?
SerialPortComm.cs
public partial class SerialPortComm : UserControl { public SerialPort mySerialPort = new SerialPort(); public void Open_Port(string comNumber, int baudRate) { mySerialPort.PortName = comNumber; mySerialPort.BaudRate = baudRate;
I'm having some problems with changing an array of numbers of type char to type int. Every time i try to sum 2 array indexed values it returns some letter or symbol. Also, if i change the type of the array in the functions the compiler gives me an error message. I would also like to add that the problem requires that the first two arrays be char so each individual number gets assigned to a different value.
My current code is:
Code: #include <iostream> void input(char a[], char b[], int& size_a, int& size_b); void convert(char a[], int size); void reverse(char a[], int size); void add(char a[], char b[], int c[], int size); int main()
I have the following code below. I am getting a memory access violation when accessing cmd->query_string in the loop function. The loop() function is running in another thread. The cmd object appears to be destroyed after calling the send_command function. How do I create an object on the heap and access the query_string.
I was working on a problem that was best solved with chaining threads together using a blocking thread-safe queue. Eg threads A and B pass data to each other using a queue ... a simple producer consumer design A -> B. This has two benefits: 1) being that there is a buffer between the two threads to cache for a slow consumer and 2) allows for better throughput when loads of data are high because the two can run in parallel. Most of the time the design works well under load. but I found when pushing data through the threads intermittently, i.e. once about 0.5 seconds it ran poorly, mostly from what seemed to be latency introduced during the OS waking up of the consumer thread B.
What i have come up with to solve this issue is what i call an .... Its a wrapper around a basic thread safe queue and adds one extra function called .... The idea here is that if you have a simple case (or perhaps a slightly more complicated case) of two threads in a prod cons design and you know the producer will create or received the data, process it, and then push onto the queue, why not give the consumer thread a heads up to let it know the data is about to arrive. In this case call .... In this way you can have the consumer thread in a polling state anticipating the arrival of data and avoid the time to schedule it back to a running state.
Anyway, i have some code below and I was looking to get some feedback. I have tested it somewhat and it does improve the responsiveness quite substantially.
progd->count was devised to stop the thread when the recursion ended by posting a message to the main window. When it reaches 1, the def procedure sends the WMU_DISC_DONE message to set the event
All that *appears* to work; however, if I cancel the recursion thread, the list view continues to populate for a bit and then deletels all but 1 item though I send the message LVM_DELETEALLITEMS.
If I move the (tmp->canceled == TRUE) test inside of the do-while, the app gets loopy.
I have a small problem with my program. It is kinda a mess but I will try to explain you what I am trying to do. I have some threads. One of it, it attempts to detect a game client. So my code is sort of like that:
DWORD ProcessID; // The process ID of the game client void test() { char* text;
[Code]....
So basically, its like the variable changes, but only inside the thread... why does that happen?
However, since it is multithreaded, I would like (and need!) to have one dedicated vector per thread. I haven't been able to find an example of how to do this online. Is it even possible?
I have an issue where I iterate through devices and make driver API calls. Unfortunately, these calls take too much time and they are interrupting my real-time scheduler. I have 12 cores, of which one is 100% and the others are < 1%.
I'd like to multi-thread this thing. So far, I've replaced:
for (DeviceIterator d = devices.begin(); d != devices.end(); ++d) { d->Write(words, numwords); }
My problem is that this didn't improve performance at all. The main thread still takes too long to execute. Is there something I need to do to prevent the main thread from blocking?
// mergefile2norecreation.cpp : definisce il punto di ingresso dell'applicazione console. // // Filemerge.cpp : definisce il punto di ingresso dell'applicazione console. //
#include "stdafx.h" int _tmain(int argc, _TCHAR* argv[]) {
There is a smart way to make a merge sort between 2 file already ordered? I had try it ,and above there is my result,it works but i think that it's possible to do it in a smart way...
I am using thread on VC 2012 (very close to VC 2010). When the argument list is short, it works fine. However, when I add a function with more arguments, the compiler indicates "no thread constructor match the argument list....etc", and when I reduce the number of arguments, it works.
Is there a limit about thread constructor? I didn't see this in ISO C++11 standard. How can I fix this limit?
I have an application that uses an array of threads to call a method along with thread.join(). I was just wondering what would be the best way to handle the thread in case if one of the thread fails? Should I put a try catch block on the method that is being called or should I put the try catch block on the array of threads, or is there any other proper way to handle failed threads?
When I use the following handler to handle and mix multiple channels, I get about 1 time unit sound, 5/6 time units silence.
//The volume conversion! #define VOLUME_PER_SOUND(volume) ((SDL_MIX_MAXVOLUME / 2)*volume) //Ammount of times to multiply the buffer! #define MULTIPLIER_BUFFER 1 /* This function is called by SDL whenever the sound card needs more samples to play. It might be called from a separate thread, so we should be careful what we touch. */ void SDLAudioCallback(void *user_data, Uint8 *audio, int length) {
[code]....
(I'm working with 44.1kHz stereo PCM streams)... I've multiplied the stream some times, but to no effect (see the c<MULTIPLIER_BUFFER loop arround the mixing)...