|
WHAT?
> old
I'm 21 years young.
> message board
Yes, this is indeed a message board.
> nazi
I'm North Indian, which I guess makes me Aryan, but I'm certainly not racist, so I don't see how I can be called a Nazi.
> fart
I eat healthy food, and I eat in moderation. It's a long time since I f*rted.
Only one out of your four charges is valid. And I don't think posting on a message board is a crime.
Are you criticizing me for my previous post? If so, I'm sorry, you're mistaken. Was my post in any way combative or threatening or demeaning? I certainly think I was polite, but if you disagree, I can't help it.
Cheers,
Vikram.
http://www.geocities.com/vpunathambekar
"It's like hitting water with your fist. There's all sorts of motion and noise at impact, and no impression left whatsoever shortly thereafter." — gantww.
|
|
|
|
|
Me thinketh the lady doth protest too much!
Gee, did I touch a nerve, or what?
LOL.
|
|
|
|
|
ahz wrote:
Me thinketh the lady doth protest too much!
LADY?
ahz wrote:
Gee, did I touch a nerve, or what?
Nope. Not in the least bit. If somebody thinks I made a mistake, I explain my side of the argument. But if they persist, they're free to disagree.
Cheers,
Vikram.
http://www.geocities.com/vpunathambekar
"It's like hitting water with your fist. There's all sorts of motion and noise at impact, and no impression left whatsoever shortly thereafter." — gantww.
|
|
|
|
|
It's a quote from a shakespeare play. As if you didn't know. LOL
|
|
|
|
|
Vikram A Punathambekar wrote:
I'm 21 years young.
I believe, you going to young by one more year next month
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
|
|
|
|
|
Truth be told, I hate growing up.
But the problem is only when you're under 25 and haven't grown up inside - people think you're childish and immature and actually look down upon you. If you're older than 25 and haven't grown up, people actually admire you.
Cheers,
Vikram.
http://www.geocities.com/vpunathambekar
"It's like hitting water with your fist. There's all sorts of motion and noise at impact, and no impression left whatsoever shortly thereafter." — gantww.
|
|
|
|
|
GuruJI Nice pravachan
Vikram A Punathambekar wrote:
If you're older than 25 and haven't grown up, people actually admire you.
yeah, I believe I heard this many time
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
|
|
|
|
|
So - 15 replies and NO help? interesting...
First of all, do you debug a Debug build or a Release? (Release build can rearrange your variables)
Second, is the code in the executable file or in a DLL? (The code that you are looking at might not be current if you have multiple copies of your DLL)
-----------------------------
Get trial copy of comment generating tool CommentMakerPro, a collection of convenience and productivity tools for Microsoft Visual Studio .NET FeinStuff, and std::string and std::string containers viewer FeinEvaluatorPro at www.FeinSoftware.com
|
|
|
|
|
I use AfxBeginThread to create a thread in which, there is loop keep reading a log file and display the contents. This thread is a memeber of a dialog. when i exit the dialog by click "Cancel" button. how can i terminate the thread when i click the "cancel" button?
I see some one said can use PostThreadMessage, but how can i catch the message as the thread process is a loop fuction.
Pls Help.
|
|
|
|
|
A better solution would be to use a loop that finishes when a certain variable is false:
while (bContinue)<br />
{<br />
}
Thus, when this variable becomes false, the function exists and your thread terminates.
And to be really clean, this variable should be a member variable of your dialog class. Then, when you need to close the Thread you do:
bContinue = false;<br />
Hope this helps
|
|
|
|
|
but for CWinThread, the thread process funtion is a static fucntion. the parameters are passed into thread fucntion by the "LPVOID param" argument.
How can i pass a class member attribute into the thread function?
Thanx.
|
|
|
|
|
I suppose you create your thread within a class function ? If yes then pass the this pointer to the function and inside that function, call a public member function of your class. That's it.
|
|
|
|
|
|
Using Pointer really can change access the data have been passed into the thread.
thanx a lot.
One more question is that is there any potential problem if uing this method.
i mean , if the thread loop is reading the status while outside fuction change the status at same time.
|
|
|
|
|
Yes, there can be problems so it is better to use a CCriticalSection for both reading and writing to the variable. Take a look at the MSDN doc, it is not really complicated to use. If you have any further questions, don't hesitate to ask.
|
|
|
|
|
:-DThank you very much. I have fixed my problem.
I have a question about the GetExitCodeThread function.
if AfxEndThread fucntion is called inside my thread, what value i can get use GetExitCodeThread function.
dose AfxEndThread function really can deallocate all stack of hold by the thread.
Thank you.
|
|
|
|
|
Post a user defined message with PostThreadMessage and exit the thread on receiving this message.
<bold>- Nilesh
<italics>"Reading made Don Quixote a gentleman. Believing what he read made him mad" -George Bernard Shaw
|
|
|
|
|
Can you give me a sample of this mechanism.
by calling PostThreadMessage( )
how can i implement the CWinThread so that it can catch the message?
i have ever tried this way:
threadRoute()
{
GetMessage(.....)
}
but is not what i want, because i need a loop inside the thread fucntion. it is keep looping until i want to terminate.
Thanx!
|
|
|
|
|
Simpler way out could be checking a flag in your thread's loop and this flag be changed by your application before exiting.
<bold>- Nilesh
<italics>"Reading made Don Quixote a gentleman. Believing what he read made him mad" -George Bernard Shaw
|
|
|
|
|
have you created a worker thread or UI thread using CWinthread
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
|
|
|
|
|
Actually i am not sur
i create a dlg which has a control list. when this dlg is created by calling domodal(), a CWinThread is created in OnInit funtion. The thread will keep reading the log files and display the contents on the control list.
User will click cancel of the dlg to exit the dlg. problem is if i don't kill the Thread, it may still hold the handle to the log file. so further writing to the log file will cause problem.
|
|
|
|
|
could you show me your coding of OnInitDialog Function?
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
|
|
|
|
|
There is several way to terminate your thread. Let me suppose that you understand about synchronisation.
And also to make thing more easier,
define a static member variable of type: static BOOL m_endLoop for your dialog class CYourDLG;
and also define a static member of type: static CEvent m_EventExit for your dialog class CYourDLG.
in the CYourDLG::OnInit() function initialize m_endLoop=0; and call m_EventExit.SetEvent().
And in your function OnCancel and OnOk at before to exit, call
WaitForSingleObject(EventExit,INFINITE); and in the first line in those 2 functions set
m_endLoop =TRUE;
and now in your loop function that terminate the thread, inside the loop insert this code:
if(CYourDLG::m_endLoop==TRUE)
{
// first to some cleaning and close all opened file or whatelse
...........
//and call
CYourDLG::m_EventExit.SetEvent();
return 0;
}
================== BUT when your start the thread insert this line at the begin of the thread function
CYourDLG::m_EventExit.ResetEvent();
That is.
You will have no access violation.
This solution must help.
Let me know if you have more questions
Perre Kande
|
|
|
|
|
a_du wrote:
Actually i am not sur
How can you not know? You call AfxBeginThread() in one of two ways. One way creates a worker (has no message pump) thread. The other creates a UI (has a message pump) thread.
"Ideas are a dime a dozen. People who put them into action are priceless." - Unknown
|
|
|
|
|
Hello,
I think that you have a worker thread problem. Read here[^] about threads.
As stated in the article, you can kill your thread by calling ::TerminateThead((HANDLE)YourWinThreadObject); , but this is not safe, since your resources will not be cleaned up nicely...
Behind every great black man...
... is the police. - Conspiracy brother
Blog[^]
|
|
|
|