c# - 了解多线程

标签 c# multithreading

我正在努力了解多线程。

对于简单的任务,我发现最简单的方法是这样做:

new Thread(delegate()
{
    Console.Writeline("doing stuff here");

}).Start();

new Thread(delegate()
{
    Console.Writeline("doing other stuff here");

}).Start();

我想知道的是,如果我在我的两个线程中调用一个方法,这会导致冲突吗:

new Thread(delegate()
{
    dostuff();

}).Start();

new Thread(delegate()
{
    dostuff();

}).Start();


private void dostuff()
{
    Console.WriteLine("Do Stuff Here");
}

最佳答案

它只会在您共享变量时导致冲突,例如 dostuff 方法中的那些线程之间的静态类或全局类。

只有该方法的所有局部变量都是安全的,您可能共享的变量必须使用锁来防止数据竞争。

此外,您的控制台是一个共享资源,如果您希望它被正确排序,则需要协调写入。

关于c# - 了解多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16435862/

相关文章:

c# - 在另一个代理中包装 RemotingProxy 的 __TransparentProxy 抛出 RemotingException

c# - 字符串作为变量名

c# - HttpClient PostAsync 和 SendAsync 之间的区别

c++ - 线程 C++ 的 lambda 内部函数调用

c# - 如何在 C# 中检索和使用通过 Http GET 请求获得的数据

python - Python 中的 IRC 客户端;不是 IRC 机器人

Java 与主线程并行运行任务而不阻塞它

java - Android 如何为 UI 事件编写一个简单的计时器?

python - uWSGI worker 卡住 : why

c# - 如何使调试与发布之间的编译不同?