|
For starters, I would recommend creating one thread each for every list control item.
The link could be passed as a parameter to the thread.
Later I would recommend creating a set of threads and engaging only those threads.
|
|
|
|
|
is working even if the number of items in list is too large ?
its safe to use it.
|
|
|
|
|
It will work for large number of items, but it will not be a good design and will have performance problems.
But since you're a beginner in multi-threading, I would recommend you do this first and then optimize it.
|
|
|
|
|
ok i'll try this but if its not good for performance,so please tell me the any other optimize and efficient menthod,i also try and start with right way and option.
|
|
|
|
|
You could start by looking at the CreateThreadpool API which is available from Vista onwards.
|
|
|
|
|
can u please provide me any example or sample application for this.
|
|
|
|
|
|
I am writing some software that has a third party dialog box(dragon naturally speaking software) that pops up, is smaller than my welcome screen, and gets pushed behind my welcome screen when someone clicks away from the third party dialog box.
Basically I want to treat it like a parent/child situation where you cannot click away from the form unless the cancel/ok button is pressed.
I don't have much control over the dialog box, other than sending it Window's messages.
I can get the handle to the box too, but I'm just not sure how I stop people from clicking away from the window(which can start other threads and can crash the software).
Any ideas?
|
|
|
|
|
You can disable the window from which the Dragon window is invoked.
Use EnableWindow for this.
|
|
|
|
|
I'm not sure if this will solve your problem, but you could check and ensure that you open the dialog with DoModal().
|
|
|
|
|
Why is more apropriate to write
if(true == a)
instead of
if(a == true)
and why the
if(a)
is avoidable. I mean not avoidable, but the first two are preferable.
|
|
|
|
|
TCPMem wrote: if(true == a)
because if you type "=" instead of "==" the compiler will report an error.
M.
Watched code never compiles.
|
|
|
|
|
They are all largely a matter of style, although option 1 tends not to be used in C++ as most modern compilers tend to query expressions of the form:
if (a = true)
on the basis that it is probably a typo. The last form is quite acceptable although once again things have moved on with C++ and a might not be a bool type.
Just say 'NO' to evaluated arguments for diadic functions! Ash
|
|
|
|
|
TCPMem wrote: Why is more apropriate to write
if(true == a)
Because the compiler will catch the error if you mistakingly use an assignment operator.
TCPMem wrote: if(a)
is avoidable. I mean not avoidable...
This is simply checking if a has a non-zero value (regardless of what type it is).
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Man who follows car will be exhausted." - Confucius
|
|
|
|
|
i personally dislike
if (a) because it isn't obvious at the very first look what exactly 'a' is, it could be a bool, an int, a pointer, an instance of a class with a bool operator, and it can be confusing if you are e.g. reading someone else's code and do not have an in-depth knowledge of what is what and why.
> The problem with computers is that they do what you tell them to do and not what you want them to do. <
> "It doesn't work, fix it" does not qualify as a bug report. <
> Amazing what new features none of the programmers working on the project ever heard of you can learn about when reading what the marketing guys wrote about it. <
|
|
|
|
|
Actually if you use this form strictly to check if a is true instead of for example checking if the integer value is 0 this form is very clear.
|
|
|
|
|
As Richard said, it is a matter of style really. That form can also be very easily readable with well named variables, e.g:
if (noMoreItemsLeft) EndOfItems(); looks quite obvious when you read through the code, but
if (!ptrToNextItem) EndOfItems(); you have to 'analyze' this, if not ptrToNextItem, this means, if ptrToNextItem is zero, then...
I also don't like situations like this:
class AClass
{
public:
int Integer;
bool Bool;
AClass(int i, bool b):Integer(i),Bool(b) {}
operator bool() const { return Bool; }
AClass &operator =(int i) { Integer = i; return *this; }
};
...
AClass A(0, true);
if (A) A = 3;
...
> The problem with computers is that they do what you tell them to do and not what you want them to do. <
> "It doesn't work, fix it" does not qualify as a bug report. <
> Amazing what new features none of the programmers working on the project ever heard of you can learn about when reading what the marketing guys wrote about it. <
|
|
|
|
|
I'd say that was more a criticism of the inappropriate use of operator overloading rather than a problem with not comparing the results of logical expressions to true and false.
Cheers,
Ash
|
|
|
|
|
I have seen this being done (not by me). Anyways, am just trying to say that "in my oppinion" simply writing if (whatever) doit(); isn't always completely clear and obvious. But i am repeating myself . This is indeed a question of style and personal oppinion, i am not saying it is good or bad, just sharing my point of view.
> The problem with computers is that they do what you tell them to do and not what you want them to do. <
> "It doesn't work, fix it" does not qualify as a bug report. <
> Amazing what new features none of the programmers working on the project ever heard of you can learn about when reading what the marketing guys wrote about it. <
|
|
|
|
|
I mostly disagree with the others.
1.
You need better identifier names. Then the short form is the right one:
if (printingToFile) printToFile();
2.
it does not make sense comparing with true explicitly, as can be proven ex absurdo:
If you think
if (a==true) ...
is any good, then the following is even better:
if ((a==true)==true) ...
3.
when the variable's type is NOT boolean and you need an explicit constant value, then one can argue putting the constant first is safer, as it causes an error when accidentally = is used instead of ==. However, a decent compiler will generate a warning when you accidentally write:
if (myInteger=1) ...
|
|
|
|
|
I don't agree with your point 2 proof (though it is clever).
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
Agreed 100%.
Remember these ones:
BOOL bDoIt = ::ExternFunction();
if (bDoIt == TRUE)
where ExternFunction() according to documentation returns non-zero on success?
It's not a matter of style. It's a matter of stupidity.
|
|
|
|
|
Niklas Lindquist wrote: BOOL bDoIt = ::ExternFunction();
if (bDoIt == TRUE)
Niklas Lindquist wrote: It's a matter of stupidity.
May be I'm being a bit stupid but, what exactly is "stupid" in the code above?
if (bDoIt) would've looked nicer but if (bDoIt == TRUE) isn't bad either.
It's better to know some of the questions than all of the answers.
Pravin.
|
|
|
|
|
It's ultra-bad. Returning non-zero on success, might just as well mean returning 2, 3 or, God forbid, even 4. Comparing it to TRUE (i.e. 1) might not give the anticipated result. The only thing you can compare it to is FALSE, if (bDoIt != FALSE), would have been the correct usage. But that really doesn't help anyone, does it.
Good naming removes the need for such constructs. It's about readability.
Consider
if (signalIsOn) {}
if (signalIsOn == true) {}
The second construct is just plain silly, and actually reduces readability.
|
|
|
|
|
OK, now I get it. To be honest, I had never thought about this side effect. But, to me what seems to be the real problem here is the use of BOOL (which is essentially int )in place of bool . A bool bDoIt would have responded to any non-zero number by simply turning itself to true .
Does that mean we should avoid using BOOL in general?
It's better to know some of the questions than all of the answers.
Pravin.
|
|
|
|