
-
-
- //先创建一个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+"");
- }
评价