c#基础知识篇-委托Func和Action区别

Func指向的方法必须有返回值。Action指向的方法必须无返回值。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
static void TestA()
{
    Console.WriteLine("无参无返回值方法");
    Console.WriteLine("TestA线程,当前线程ID:" + Thread.CurrentThread.ManagedThreadId);
}
 
static void TestB(int i, int j)
{
    Console.WriteLine("有参无返回值方法");
    Console.WriteLine("TestB线程,当前线程ID:" + Thread.CurrentThread.ManagedThreadId);
}
 
static int TestC()
{
    Thread.Sleep(1000);
    Console.WriteLine("无参有返回值方法");
    Console.WriteLine("TestC线程,当前线程ID:" + Thread.CurrentThread.ManagedThreadId);
    return 1;
}
 
static string TestD(int i, int j)
{
    Thread.Sleep(2000);
    Console.WriteLine("有参有返回值方法");
    Console.WriteLine("TestD线程,当前线程ID:" + Thread.CurrentThread.ManagedThreadId);
    return (i + j).ToString();
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Action actionA = TestA;
actionA.BeginInvoke(null, null);
 
Action<int, int> actionB = TestB;
actionB.BeginInvoke(2, 3, null, null);
 
Func<int> funC = TestC;
IAsyncResult resultC = funC.BeginInvoke(null, null);
while (!resultC.IsCompleted)
{
    Console.WriteLine("线程执行中,未结束");
}
 
int valueC = funC.EndInvoke(resultC);
Console.WriteLine("得到的值:" + valueC + ",当前线程ID:" + Thread.CurrentThread.ManagedThreadId + "");
 
Func<int, int, string> funD = TestD;
IAsyncResult resultD = funD.BeginInvoke(1, 2, null, null);
while (!resultD.IsCompleted)
{
    Console.WriteLine("线程执行中,未结束");
}
 
string valueD = funD.EndInvoke(resultD);
Console.WriteLine("得到的值:" + valueD + ",当前线程ID:" + Thread.CurrentThread.ManagedThreadId + "");
 
Console.WriteLine("主线程结束,当前主线程ID:" + Thread.CurrentThread.ManagedThreadId);

  

posted @   相遇就是有缘  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
  1. 1 我记得 赵雷
  2. 2 北京东路的日子 汪源
  3. 3 把回忆拼好给你 王贰浪
北京东路的日子 - 汪源
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

Not available

点击右上角即可分享
微信分享提示