到目前为止,我一直在尝试通过在项目中立即实现线程来掌握线程。我一直试图这样做很长一段时间。但这没有产生任何结果,也没有给我任何线程经验。尝试给我的唯一一点就是C#中的线程有很多重要的改进。
我找不到任何关于线程的简单练习。我正在寻找你必须制作不同简单的控制台应用程序的练习。我正在寻找简单的练习,这样我就可以了解在处理线程时如何工作并掌握这个想法。我看过一本难以编程的练习书随着问题的数量变得越来越难。我正在寻找类似的东西。之后我将继续使用更复杂的东西并尝试在我的项目中添加线程(使用Windows窗体制作)。
在哪里可以找到有关C#中线程的练习/练习册?
编辑:
我不是在寻找任何教程 - 我可以自己找到它们。我只在寻找练习和练习。如果没有这样的练习,请告诉我。
答案 0 :(得分:7)
简单练习:
1)更改有效的代码(通过示例学习)
2)回答关于SO的问题(通过教学学习)
答案 1 :(得分:4)
Joseph Albahari有一篇很棒的文章叫Threading in C#。这篇关于开始学习C#中的线程的博客文章非常酷。约瑟夫清楚地解释道:
并在Codeproject中查看this文章。
您可以通过实例化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
...
如果您想深入学习线程,请获取C# 4.0 in a Nutshell
的副本答案 2 :(得分:-1)
线程非常简单。以下是有关它的热门链接:http://www.albahari.com/threading/
基础:
创建一个返回void且不带参数的方法。像这样:
private void MyThreadMethod()
{
//Some code here.
}
要在线程中调用该方法,只需在表单上的按钮中执行此操作。
var thread = new Thread(new ThreadStart(MyThreadMethod));
thread.Start();
这将创建一个线程并将其启动并运行MyThreadMethod
中的代码。
现在,魔鬼在细节中。线程安全和线程管理是线程和多任务的真正艺术。另一件需要考虑的事情是Threads vs Tasks,它们更加用户友好。