【发布时间】:2013-12-15 19:48:15
【问题描述】:
我有一个基于 .net 技术的 Windows 应用程序。在我的应用程序中,我收到了来自不同线程的大量消息。一旦我收到一条消息,我需要调用一个应该是线程安全的函数。 我用过
lock (lockThis)
{
TSFunction(message);
}
现在有人建议我改用消息队列。我完全不熟悉这种方法,但我想选择更好的方法。 我应该切换到消息队列吗?如果是,那么有人可以指点我一些好的教程吗?
【问题讨论】:
-
在
lock中调用函数不会使函数线程安全。消息队列也不能使任何东西本质上是线程安全的。唯一可以可靠地使线程安全的是方法的 content,而不是您调用它的方式。无论哪种方式,询问 StackOverflow 是否应该切换都代表我们对您的系统有太多了解(我们不知道您的更广泛的要求是什么!),并且在许多情况下也是一个相当主观的问题。
标签: c# multithreading thread-safety message-queue