04.11.2014 Views

编程资料- 多线程 - 错误提示:发生了异常- 博客园

编程资料- 多线程 - 错误提示:发生了异常- 博客园

编程资料- 多线程 - 错误提示:发生了异常- 博客园

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

这 是 对 上 面 的 实 例 方 法 的 包 装 。 但 如 果 这 段 代 码 写 在 Sample 类 内 部 , 则 应 使 用 this.DoSomething 而 不 用<br />

新 建 一 个 Sample 实 例 。 对 Sample 的 Hello 静 态 方 法 可 以 包 装 如 下 :<br />

MyDelegate del = new MyDelegate(Sample.Hello);<br />

调 用 委 托 : 对 于 某 个 委 托 的 实 例 ( 其 实 是 一 个 具 体 的 函 数 ), 如 果 想 执 行 它 :<br />

del(12345);<br />

直 接 写 上 委 托 实 例 的 名 字 , 并 在 括 号 中 给 相 应 的 参 数 赋 值 即 可 。( 如 果 函 数 有 返 回 值 , 也 可 以 像 普 通 函 数 那 样 接<br />

收 返 回 值 )。<br />

[TOP]<br />

C# 实 现<br />

Demo 1D,C# 实 现 。 这 里 给 出 Demo 1C 中 VB.NET 代 码 的 C# 实 现 : 是 不 是 比 VB.NET 的 代 码 复 杂<br />

了 一 些 呢 ?<br />

using System;<br />

using System.Threading;<br />

namespace percyboy.EventModelDemo.Demo1D<br />

{<br />

// 需 要 做 很 长 时 间 才 能 完 成 任 务 的 Worker, 这 次 我 们 使 用 事 件 向 外 界 通 知<br />

进 度 。<br />

public class Worker<br />

{<br />

private const int MAX = 10000;<br />

// 注 : 此 例 的 写 法 不 符 合 .NET Framework 类 库 设 计 指 南 中 的 约 定 ,<br />

// 只 是 为 了 让 你 快 速 理 解 事 件 模 型 而 简 化 的 。<br />

// 请 继 续 阅 读 , 使 用 Demo 1E / Demo 1H 的 C# 标 准 写 法 。<br />

//<br />

public delegate void StartWorkEventHandler(int totalUnits);<br />

public delegate void EndWorkEventHandler();<br />

public delegate void RateReportEventHandler(double rate);<br />

public event StartWorkEventHandler StartWork;<br />

public event EndWorkEventHandler EndWork;<br />

public event RateReportEventHandler RateReport;

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!