C#中怎么样启动一个带有多个参数的函数的副线程?
答案:1 悬赏:80 手机版
解决时间 2021-06-06 19:26
- 提问者网友:niaiwoma
- 2021-06-06 03:58
C#中怎么样启动一个带有多个参数的函数的副线程?
最佳答案
- 五星知识达人网友:荒野風
- 2021-06-06 05:28
看代码
//声明一个委托
public delegate string AddHandler(int a, string b);//你要多少个参数在这里定义,此例只有两个参数
void 调用异步()
{
AddHandler handler = new AddHandler(Add);
//用BeginInvoke开始异步操作 这里的 1,"字符串",这两个参数就是对应(int a, string b)
IAsyncResult result = handler.BeginInvoke(1, "字符串", new AsyncCallback(AddComplete),"这里是随便你写个什么对象");
}
static int Add(int a, string b)
{
//这里是处理的的函数
Thread.Sleep(3000);//模拟耗时操作
return b+a.ToString();
}
static void AddComplete(IAsyncResult result)
{
AddHandler handler = (AddHandler)((AsyncResult)result).AsyncDelegate;
//调试一下就会明白了
MessageBox.Show(handler.EndInvoke(result));
MessageBox.Show(result.AsyncState);
}
//声明一个委托
public delegate string AddHandler(int a, string b);//你要多少个参数在这里定义,此例只有两个参数
void 调用异步()
{
AddHandler handler = new AddHandler(Add);
//用BeginInvoke开始异步操作 这里的 1,"字符串",这两个参数就是对应(int a, string b)
IAsyncResult result = handler.BeginInvoke(1, "字符串", new AsyncCallback(AddComplete),"这里是随便你写个什么对象");
}
static int Add(int a, string b)
{
//这里是处理的的函数
Thread.Sleep(3000);//模拟耗时操作
return b+a.ToString();
}
static void AddComplete(IAsyncResult result)
{
AddHandler handler = (AddHandler)((AsyncResult)result).AsyncDelegate;
//调试一下就会明白了
MessageBox.Show(handler.EndInvoke(result));
MessageBox.Show(result.AsyncState);
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯