苏飞论坛
标题:
帮忙解释下这段代码
[打印本页]
作者:
玫瑰花的葬礼
时间:
2013-4-26 15:41
标题:
帮忙解释下这段代码
[code=csharp]private struct SendMessageStates
{
public SendMessageDelegate d;
public IAsyncResult result;
}
/// <summary>异步向服务器端发送数据</summary>
private void AsyncSendMessage(string message)
{
SendMessageDelegate d = new SendMessageDelegate(SendMessage);
IAsyncResult result = d.BeginInvoke(message, null, null);
while (result.IsCompleted == false)
{
if (isExit)
{
return;
}
Thread.Sleep(50);
}
//下面这段没看懂,帮忙解释下
SendMessageStates states = new SendMessageStates();
states.d = d;
states.result = result;
Thread t = new Thread(FinishAsyncSendMessage);
t.IsBackground = true;
t.Start(states);
}[/code]
作者:
站长苏飞
时间:
2013-4-26 15:58
[code=csharp]SendMessageStates states = new SendMessageStates();
states.d = d;
states.result = result;[/code]
这是New一个结构SendMessageStates 对象名为states 下面是赋值
//开启一个线程技术方法FinishAsyncSendMessage
[code=csharp]Thread t = new Thread(FinishAsyncSendMessage);
t.IsBackground = true;//设置为后台线程,在后台运行的那种
t.Start(states);//给这个FinishAsyncSendMessage方法传个参数是states[/code]
其实这里主要解决的是多线程调用有参数的方法的问题,
其它可以更简单就是我常写的那种
如下
[code=csharp]Thread objThread = new Thread(new ThreadStart(delegate
{
//在这里写你的方法,可以随便 写多个方法和参数。这是最方便 的
}));
objThread.Start();[/code]
作者:
玫瑰花的葬礼
时间:
2013-4-26 19:07
受教了,学习中……
欢迎光临 苏飞论坛 (http://www.sufeinet.com/)
Powered by Discuz! X3.4