有什么办法让委托在特定线程上运行?在特定线程上调用委托C#
说我有:
CustomDelegate del = someObject.someFunction;
Thread dedicatedThread = ThreadList[x];
我能有一个一致的背景下长期运行的线程并调用我自己的代表,每当我需要它。它必须每次都是相同的线程。
[编辑]
为什么我想这是一个专门的线程的原因是时间是我INTEN在其上运行的委托后y
毫秒挂起线程,并继续当我运行的线程另一位代表就此。我看到这是不可能的。我将有一个委托队列,让线程的主函数从中读取并运行。
为了澄清一个具体的例子,我有一个玩家线程的游戏系统。我希望每个playerthread都能为其上的游戏事件运行事件处理程序。如果事件处理程序花费太多时间,我希望能够暂停该特定播放器,直到下一个事件挂起其线程为止。
因此,有一个专用的线程可以运行多个事件处理程序,我可以暂停某个特定的玩家的AI,以防它被窃听或时间过长。
谢谢你指出ActionThread,看起来非常有用。我需要封装外部代码,在线程中我几乎没有任何控制权。我所拥有的只是代表外部代码。如果我可以确保该对象在一个特定的线程中,我可以通过暂停该线程来“暂停”该对象。我不认为线程池将允许我很好地“暂停”对象。 – Raynos 2010-08-14 08:10:39
警告:通过挂起/恢复线程可能(甚至可能)意外造成死锁。如果可能,请更改外部代码。如果这是不可能的,那么考虑使用线程优先级而不是挂起/恢复。 – 2010-08-14 10:23:30