|
-
Dec 6th, 2007, 09:02 AM
#1
Thread Starter
Member
Getting data from Thread/BackgroundWorker
Hi. I'm building a P2Pish chat client for a class project, but I'm having a little trouble with the threading. The chat program basically consists of a server and client. The server doesn't actually handle the conversations, the clients do it themselves. The server is only used to register users as being online when they log on and stores connection information for that user. When one client wants to talk to someone on its friends list, it gets the connection information from the server for that person and proceeds to make a direct connection to that client.
This isn't completely relevant to the question, its just a bit of background information so you can understand what I'm trying to do.
That part of it works fine. Here's the problem: I have a chat window that I bring up to talk to a friend. I type text in it, that text is sent down the stream via TcpClient and read by the other client (looping through a thread). The problem I'm having is that once the receiver gets the message from the stream he needs to append that message to the textBox in his own chat window (which pops up on an incoming connection).
Since the reading of messages for this conversation (handled within the ChatSession class, created for each conversation), is in a thread I can't simply do something like this:
Code:
StreamReader sr = new StreamReader(_endToEndConnection.GetStream());
while (true)
{
Thread.Sleep(10);
if ((line = sr.ReadLine()) != "")
{
txtChat.AppendText(line);
}
}
because I do not have access to the txtChat control within the thread.
I've been trying to user BackgroundWorker, having it execute the above code and fire the RunWorkerCompleted event. Unfortunately, that only executes when the DoWork function actually exits, and since it's looping repeatedly, waiting for new incoming messages, it never really quits.
Any suggestions on how I can update that txtChat control from a thread?
Posting Permissions
- You may not post new threads
- You may not post replies
- You may not post attachments
- You may not edit your posts
-
Forum Rules
|
Click Here to Expand Forum to Full Width
|