
上图的所有多线程案例大全完整版本项目源代码下载---->点击下载

private int DoingSomethin6(string name)
{
for (int i = 0; i < 20; i++)
{
Thread.Sleep(100);
}
Console.WriteLine($"{name}-->{Thread.CurrentThread.ManagedThreadId}");
return DateTime.Now.Day;
}
delegate int DelegateM(string a);
private void button8_Click(object sender, EventArgs e)
{
//delegate用法
DelegateM delegateM = DoingSomethin6;//简写
Console.WriteLine($"同步调用-->:{delegateM("button8_Click")}");
IAsyncResult asyncResult = null; //返回内容
//线程结束后回调函数
AsyncCallback callbak = ia =>
{
//Console.WriteLine(object.ReferenceEquals(asyncResult, ia));
Console.WriteLine(ia.AsyncState);//参数内容
Console.WriteLine($"运行这里已经完成-->{Thread.CurrentThread.ManagedThreadId}");
};
//异步
asyncResult = delegateM.BeginInvoke("button8_Click", null, "hello");
Console.WriteLine($"异步带有返回值内容-->{delegateM.EndInvoke(asyncResult)}");
Console.WriteLine($"线程结束-->{Thread.CurrentThread.ManagedThreadId}");
}