gpt4 book ai didi

c# - 如何创建具有异步功能的类(类似于 SqlCommand 或 WebRequest)?

转载 作者:行者123 更新时间:2023-12-02 14:33:45 25 4
gpt4 key购买 nike

我最近阅读了很多有关异步编程的内容,因为我需要创建一个多线程应用程序。

不幸的是,我似乎无法将我新获得的知识整合成一个有凝聚力且有用的单元!

我希望有人能给我一些关于如何构建以下内容的指导:

  • 我有一个类,它按指定的顺序执行许多不同的(且耗时的)任务。

  • 我想在我的 Winforms UI 线程中实例化此类。例如:

    TaskRunner tr = new TaskRunner();
  • 我希望能够调用 BeginAsync() 方法(就像您可以对许多 .NET 内置对象执行的那样)。例如:

    tr.BeginAsync();
  • 我希望我的类在发生某些事件(用于日志记录、完成等)时回调到我的 UI 线程。

  • 我希望能够取消我的类(class)的执行。例如:

    tr.CancelAsync();

我该如何构建该类的内部结构?我似乎找不到任何有关 SqlCommand 或 WebRequest 内部如何工作的内容。

最佳答案

对于此操作,您需要使用基于事件的异步模式(而不是 IAsyncResult 设计模式)。有关详细信息,请参阅 MSDN 文档中标题为“基于事件的异步模式概述”的部分,位于:

http://msdn.microsoft.com/en-us/library/wewwczdw.aspx

关于c# - 如何创建具有异步功能的类(类似于 SqlCommand 或 WebRequest)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/566732/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com