如何在C#中执行Java或类似Qt的多线程编程

本文关键字:Qt 编程 多线程 Java 执行 | 更新日期: 2023-09-27 18:29:46

您知道,多线程编程对于我们更高效地开发某些东西非常重要。

Java、Qt或ACE中都有通用的多线程概念结构,它们为我们提供了一个通用的接口来实现,如void run()方法、Mutex和Semaphore。

C#有一些多线程的功能。但是,如果像我这样的开发人员想要使用所谓的结构,他/她应该怎么做?有图书馆什么的吗?

如何在C#中执行Java或类似Qt的多线程编程

在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(); 
    } 
  } 
}

大多数现代语言包都带有库,这些库允许访问管理进程内额外线程的操作系统调用。选一个试试。当你有无法正常工作的事情时,再问一次。