【发布时间】:2009-05-13 14:09:10
【问题描述】:
我有一个通用的通信库,我已经编写了它来通过 TCP/IP 与我们的硬件进行通信
公共库允许客户端应用程序和我们的工程师工具共享公共代码。 公共库运行需要将数据返回到表单的线程。
我有一些工作代码,但我觉得必须有更简单的方法来做到这一点。
这是我所拥有的简化版本...
namespace EngineerTool
{
public delegate void DelegateSearchFinished();
public partial class MainForm : Form
{
public DelegateSearchFinished d_SearchFinished;
Discover discovery;
public MainForm()
{
InitializeComponent();
discovery = new Discover(this.FinishedSearchInvoke);
d_SearchFinished = new DelegateSearchFinished(this.FinishedSearch);
discovery.Start();
}
public void FinishedSearchInvoke()
{
this.Invoke(this.d_SearchFinished, new Object[] {});
}
public void FinishedSearch()
{
// Search has finished here!
}
}
}
namespace DiscoveryTool
{
public delegate void DelegateSearchFinished();
public class Discover
{
DelegateSearchFinished _callFinished;
public Discover(DelegateSearchFinished callFinished)
{
_callFinished = callFinished;
}
public void Start()
{
// starts thread and stuff
}
public void ThreadWorker()
{
_callFinished();
}
}
}
【问题讨论】:
标签: c# multithreading dll delegates