C#线程:初学者练习



到目前为止,我一直试图通过在项目中立即实现线程来掌握线程。我已经尝试了很长一段时间。但这并没有产生任何结果,也没有给我任何线程方面的经验。这次尝试给我的唯一印象是,C#中的线程有许多重要的改进。

我找不到任何关于穿线的简单练习。我正在搜索那些你必须制作不同的简单控制台应用程序的练习。我正在寻找简单的练习,这样我就可以在处理线程时了解事情是如何工作的,并掌握这个想法。我看过一本有难度的编程练习书,随着问题的数量越来越大,难度越来越大。我正在寻找类似的东西。之后,我将继续处理更复杂的事情,并尝试在我的项目中添加线程(该项目是用Windows窗体制作的)。

在哪里可以找到关于C#中线程的练习/练习集?

编辑:

我不想找任何教程——我自己可以找到。我正在搜索练习和练习。如果没有这样的练习,请告诉我。

简单练习:

1) 更改有效的代码(通过示例学习)

  • 打开任何教程
  • 查找代码示例
  • 玩代码示例,看看哪些有效,哪些无效

2)回答SO(通过教学学习)的问题

  • 找到一个有趣的问题
  • 回答(你应该做一个调查)
  • 与其他用户交谈和互动

Joseph Albahari有一篇很棒的文章,叫做C#中的线程。这是一篇非常酷的关于开始学习C#线程的博客文章。Joseph清楚地解释道:

  • 简介和概念
  • 加入并睡眠
  • 线程工作原理
  • 创建和启动线程
  • 线程池

看看Codeproject的这篇文章。

  • 入门

您可以通过实例化Thread对象并调用其Start方法。Thread的最简单构造函数接受ThreadStart委托:一种无参数的方法,指示应该从哪里开始执行。

using System;
using System.Threading;
class ThreadTest
{
static void Main()
{
Thread t = new Thread (WriteY); // Kick off a new thread
t.Start(); // running WriteY()
// Simultaneously, do something on the main thread.
for (int i = 0; i < 1000; i++) Console.Write ("x");
}
static void WriteY()
{
for (int i = 0; i < 1000; i++) Console.Write ("y");
}
}
// Output:
xxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyy
yyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyxxxxxxxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
yyyyyyyyyyyyyxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
...

如果你想深入学习线程,可以在Nutshell 中获得一份C#4.0的副本

线程处理非常直接。这里有一个关于它的流行链接:http://www.albahari.com/threading/

基础知识:

创建一个返回void且不接受参数的方法。像这样:

private void MyThreadMethod()
{
//Some code here.
}

要在线程中调用该方法,只需在窗体上的按钮中执行即可

var thread = new Thread(new ThreadStart(MyThreadMethod));
thread.Start();

这将创建一个线程并启动它,然后在MyThreadMethod中运行代码。

现在,魔鬼在细节中。线程安全和线程管理是线程和多任务处理的真正艺术所在。另一件需要考虑的事情是线程与任务,它们更用户友好。

最新更新