分类:
WCf
//先创建一个MVC项目然后创建一个Wcfservies public class Service2 : IService2 { public int Sum(int a, int b) { //将输出延迟六秒 System.Threading.Thread.Sleep(6000); return a + b; } } //接口 [OperationContract] int Sum(int a, int b); 然后再建立一个webform项目建立两个按钮用来测试异步再webform窗体的后台的操作1 //引入空间 using System.Threading; //方法一自己开辟线程 Thread therd = new Thread(() => { Service2.Service2Client clint = new Service2.Service2Client(); int result = clint.Sum(5, 6); MessageBox.Show(result + ""); }); therd.Start(); //方法二使用task开辟线程 Task.Run(() => { Service2.Service2Client client = new Service2.Service2Client(); int result = client.Sum(6, 6); MessageBox.Show(result + ""); }); //方法三使用自带的 //如果在配置Service2的配置服务引用选择 生成基于任务的操作就可以使用该方法 如果点击基于异步操作就不行(最上面图片) GetasynecSum(); public async void GetasynecSum() { Service2.Service2Client client = new Service2.Service2Client(); int result = await client.SumAsync(7, 7); MessageBox.Show("" + result); } //方法四 //如果在配置Service2的配置服务引用选择 生成基于任务的操作就不可以使用该方法 如果点击基于异步操作就可以(最上面图片) Service2.Service2Client client = new Service2.Service2Client(); client.SumAsync(8, 8); client.SumCompleted += client_SumCompleted; void client_SumCompleted(object sender, Service2.SumCompletedEventArgs e) { //返回接口的值 MessageBox.Show(e.Result+""); }
评价