如何在C#中执行Java或类似Qt的多线程编程
本文关键字:Qt 编程 多线程 Java 执行 | 更新日期: 2023-09-27 18:29:46
您知道,多线程编程对于我们更高效地开发某些东西非常重要。
Java、Qt或ACE中都有通用的多线程概念结构,它们为我们提供了一个通用的接口来实现,如void run()
方法、Mutex和Semaphore。
C#有一些多线程的功能。但是,如果像我这样的开发人员想要使用所谓的结构,他/她应该怎么做?有图书馆什么的吗?
在C#中,有Mutex、Semaphore、Threading、Parallel LINQ、Async Await和许多其他可以使用的技术。
这完全取决于上下文。"你想做什么"决定了你想使用什么工具。
编辑:
Javas Runnable
接口可以很容易地在C#中模拟(本文中的示例):
Java:
public class Counter implements Runnable {
private int count;
public Counter(int val) { this.count = val; }
public void run() {
for(int i=0; i < count; i++)
System.out.println(“Hello World”);
}
public static void main(String args[]) {
Counter c = new Counter(10);
Thread t = new Thread(c);
t.start();
}
}
C#等价物:
using System;
using System.Threading;
namespace SimpleThreadExample {
class Counter {
private int count;
public Counter(int val) { this.count = val; }
public void DoCount() {
for(int i=0; i < count; i++)
System.Console.WriteLine(“Hello World”);
}
[STAThread]
static void Main(String[] args) {
Counter c = new Counter(10);
Thread t = new Thread(new ThreadStart(c.DoCount));
t.start();
}
}
}
大多数现代语言包都带有库,这些库允许访问管理进程内额外线程的操作系统调用。选一个试试。当你有无法正常工作的事情时,再问一次。