我需要在 1 个程序中创建 3 个进程来模拟死锁。如何定义自己的流程?我不想简单地打开现有流程。
例如对于一个线程:
Thread X = new Thread(){ //insert whatever code here// };
我们如何为一个流程做到这一点,例如:
Process P = new Process(){//insert different threads here//};
我需要在 1 个程序中创建 3 个进程来模拟死锁。如何定义自己的流程?我不想简单地打开现有流程。
例如对于一个线程:
Thread X = new Thread(){ //insert whatever code here// };
我们如何为一个流程做到这一点,例如:
Process P = new Process(){//insert different threads here//};
using System;
using System.Collections.Generic;
using System.Linq;
using System.Diagnostics;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Process process = new Process();
process.StartInfo.FileName = "notepad";
//process.StartInfo.Arguments = "filename.txt"
process.StartInfo.UseShellExecute = false;
process.StartInfo.CreateNoWindow = true;
process.Start();
}
}
}
进程来自可执行文件。
你可以写Process.Start(@"C:\Something.exe")
。
您可能正在寻找Process.Start(静态或实例方法) - 这将通过启动您选择的可执行文件来创建新进程。
如果您正在寻找Unix 的 fork实现,据我所知,您无法在 .Net 中真正做到这一点。
一个进程中的代码不能在另一个进程中执行。您需要某种形式的进程间通信或远程过程调用。