|
Not sure I follow.
1. The client does not know the providers.
2. The providers - lets say they can know about each other.
The thing is - it's not a matter of push or poll, because the algorithm should still be the same, right?
EDIT: In other words, how does a provider know when to "push" a number?
Best,
John
-- LogWizard Meet the Log Viewer that makes monitoring log files a joy!
|
|
|
|
|
I think there are any number of ways; all "correct"; but not the "same".
If all the providers "know" what the other is doing, then they have all the info they need to push: they know what's behind them and beside them. In the sample you posted, there was no "stalling".
One can "subscribe" to events posted by observable collections. If each provider subscribes to each other provider, everyone will always know when anyone adds or removes entries from their collections; this is their cue to decide whether to push (much in the same way the client decides whether to pull from a single queue and how much).
I just don't like polling if I don't have to (as when there is no data). Just more "staying alive".
|
|
|
|
|
Gerry Schmitz wrote:
I just don't like polling if I don't have to (as when there is no data). Just more "staying alive".
I get your point. But in my case, it's pretty much a requirement Sorry, should have mentioned that upfront.
Best,
John
-- LogWizard Meet the Log Viewer that makes monitoring log files a joy!
|
|
|
|
|
What's wrong with using a priority queue, sorted by the event's timestamp?
All "writer" threads write their events to the queue, and the reader thread just has to read the events in order.
Note:
1. Both reading and writing from the Priority Queue require synchronization.
2. An insert/remove from a priority queue is more expensive than insert/remove from a regular queue - O(log(n)) as opposed to O(n).
If your application is not hard real-time, this might be the way to go.
If you have an important point to make, don't try to be subtle or clever. Use a pile driver. Hit the point once. Then come back and hit it again. Then hit it a third time - a tremendous whack.
--Winston Churchill
|
|
|
|
|
|
Hi, guy's.
I get some task from teacher so i really need to help.
Task:
Develop and implement functional classes.
Class of points. The base class (three-dimensional point in the plane with integer coordinates).
Methods: calculate the distance between points; adding the coordinates of two points; input - output on the screen; test the convergence of two points.
The original class: the pixels on the screen (points that have color).
Thank's.
That's what i already done:
public interface ITestPoint
{
double PointDistance();
void OutPoint();
void SetPoint(double x,double y,double _x,double _y);
}
class Point :ITestPoint
{
public double x1, x2, y1, y2;
public double PointDistance()
{
return Math.Sqrt(Math.Pow(x2 - x1, 2) + Math.Pow(y2 - y1, 2));
}
public void OutPoint()
{
Console.WriteLine("Point One({0},{1}); Point Two({2},{3})",x1,y1,x2,y2);
}
public void SetPoint(double x,double y,double _x,double _y)
{
x1 = x;
y1 = y;
x2 = _x;
y2 = _y;
}
}
class Program
{
static void Main(string[] args)
{
Point p = new Point();
p.SetPoint(2,3,5,8);
p.OutPoint();
Console.WriteLine(p.PointDistance());
Console.ReadLine();
}
}
|
|
|
|
|
And?
What help do you need?
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
my code not finished and doesn't implement all functions.
|
|
|
|
|
So finish it, and implement all functions!
We do not do your homework: it is set for a reason. It is there so that you think about what you have been told, and try to understand it. It is also there so that your tutor can identify areas where you are weak, and focus more attention on remedial action.
If you meet a specific problem, then please ask about that and we will do our best to help. But we aren't going to do it all for you!
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
ok, thank's for the answer.
|
|
|
|
|
You're welcome!
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
And what's your question?
This space for rent
|
|
|
|
|
There condition of task that I must do.
|
|
|
|
|
So you came here to tell us that you're working on a project and you're not finished with it yet? That's nice. You better get back to work on it.
|
|
|
|
|
Hi! Everyone.
Can Anybody help me out making my application trial version and disabling some features if it is trial version.
|
|
|
|
|
|
What type of application is it? Is it a phone application? A desktop one? A web based application?
|
|
|
|
|
|
hi everyone
i want to call XML API from OPEN WEATHER website
and then
parse it
and only obtain temperature, humidity and visibilty from there
then all to display in my application
which i have created in C# in MICROSOFT VISUAL STUDIO 2013
it can be displayed in text box , or label etc
and that application
and that i have built is WINDOWS FORM APPLICATION
|
|
|
|
|
what have you tried yet?
Pankaj Maurya
Sr. Software Engineer
Gurgaon, India
|
|
|
|
|
Don't post the same question with added information, add the info to your existing question.
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
|
|
|
|
|
This page[^] has links to all the API calls you'll need. If I were you, I'd use the JSON results rather than the XML version - JSON is typically a lot smaller than XML.
|
|
|
|
|
I use Parallel.For to do some calculation, when first time i calculate, the speed is slow, but when i calculate again, the speed is better. I guess maybe Parallel.For cost time to load threading .
I want to know how to pre-load Parallel.For before calculate, so that it can be fast at 1st time.
|
|
|
|
|
It's impossible to answer your question because you haven't shown any of your code.
In general, making assumptions is a bad idea when tuning the performance of your code. Use a proper profiling tool to see where the bottleneck is, and concentrate your efforts on that.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
oh, if my code is :
ConcurrentBag<int> list = new ConcurrentBag<int>();
Parallel.For(0, 10000, item =>
{
list.Add(item);
});
when i run it ,first time cost time is more than run it again.
|
|
|
|