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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<code><br> </code><code>//定义一个委托</code>
<code> </code><code>public</code>
<code>delegate</code> <code>int</code> <code>dosomething(</code><code>int</code>
<code>count);</code>
<code> </code><code>//begininvoke 的回调函数</code>
<code> </code><code>private</code>
<code>static</code> <code>void</code> <code>execute(iasyncresult async)</code>
<code> </code><code>{</code>
<code> </code><code>dosomething temp = (dosomething)async.asyncstate;</code>
<code> </code><code>int</code>
<code>sum = temp.endinvoke(async);</code>
<code> </code><code>console.writeline(</code><code>"线程结束:值为"</code>
<code>+ sum);</code>
<code> </code><code>}</code>
<code> </code>
<code> </code><code>/// <summary></code>
<code> </code><code>/// 判断输入的整数是不是素数</code>
<code> </code><code>/// </summary></code>
<code> </code><code>/// <param name="candidate">输入的整数</param></code>
<code> </code><code>/// <returns>为素数返回true,否则返回false</returns></code>
<code>static</code> <code>bool</code> <code>isprime(</code><code>int</code>
<code>candidate)</code>
<code> </code><code>bool</code>
<code>retval =</code><code>true</code><code>;</code>
<code> </code><code>//使用递增方式会更有效率,</code>
<code> </code><code>//但是在演示取消功能时,使用递减的数字会更好。</code>
<code> </code><code>//for (int i = 2; i < candidate / 2; i++)</code>
<code> </code><code>for</code>
<code>(</code><code>int</code>
<code>i = candidate / 2 + 1; i > 1; i--)</code>
<code> </code><code>{</code>
<code> </code><code>if</code>
<code>(candidate % i == 0)</code>
<code> </code><code>{</code>
<code> </code><code>retval =</code><code>false</code><code>;</code>
<code> </code><code>break</code><code>;</code>
<code> </code><code>}</code>
<code> </code><code>}</code>
<code> </code><code>return</code>
<code>retval;</code>
<code> </code>
<code>static</code> <code>int</code> <code>maseggs(</code><code>int</code>
<code>count)</code>
<code>result = 0;</code>
<code>index = 0; index < count; index++)</code>
<code>(isprime(index + 1))</code>
<code> </code><code>result++;</code>
<code>result;</code>
<code> </code><code>static</code>
<code>void</code> <code>main(</code><code>string</code><code>[] args)</code>
<code> </code><code>dosomething hidands =</code><code>new</code>
<code>dosomething(maseggs);</code>
<code> </code><code>iasyncresult async = hidands.begininvoke(100000,</code><code>new</code>
<code>asynccallback(execute), hidands);</code>
<code> </code><code>//这里还有100行代码 </code>
<code> </code><code>console.writeline(</code><code>"消息获取成功"</code><code>);</code>
<code> </code><code>console.readline();</code>