简单地说,一个控制台应用程序包含以下三个类,
namespace Stackoverflow
{
public class Program
{
public static void Main ( string [ ] args )
{
new Consumer ( );
new Provider ( );
Console . WriteLine ( "Exit ..." );
Console . ReadKey ( );
}
}
public class Consumer
{
public Consumer ( )
{
using ( Process Process = Process . GetCurrentProcess ( ) )
{
Console . WriteLine ( "Consumer : " + Process . ProcessName );
}
}
}
public class Provider
{
public Provider ( )
{
using ( Process Process = Process . GetCurrentProcess ( ) )
{
Console . WriteLine ( "Provider : " + Process . ProcessName );
}
}
}
}
输出如下,
Consumer : Stackoverflow.vshost
Provider : Stackoverflow.vshost
Exit ...
问题:
我可以将每个类附加到不同的过程,而不将它们分成不同的解决方案,尤其是Provider&消费者阶层?
它用于测试目的。移动代理相关测试。
提前致谢。
的问候,
答案 0 :(得分:1)
您可以做的最好的事情就是在不同的主题中开始每个班级。
您无法在当前流程中“创建”新流程。
答案 1 :(得分:1)
我不确定这是否会完全符合您的要求,但您可以在执行主应用程序时将代码加载到不同的AppDomain中。以下MSDN Article包含有关完整示例的信息。
来自MSDN Article on AppDomain's:
应用程序域提供灵活且安全的隔离方法 运行应用程序。
答案 2 :(得分:0)
通过定义必须在程序运行时执行哪个具体类来运行单独的进程。 要定义它,您可以使用简单的命令行参数。 所以你的程序读取命令行参数ande决定运行哪种类型。
例如:
public static void Main(string[] args)
{
if(args[0] == "consumer")
//run consumer
else
//run provider (as default)
}
希望这会有所帮助。
答案 3 :(得分:-1)
简单的错误。您没有添加{0}'
。为你固定:
public class Program
{
public static void Main(string[] args)
{
new Consumer();
new Provider();
Console.WriteLine("Exit ...");
Console.ReadKey();
}
}
public class Consumer
{
public Consumer()
{
using(Process p = Process.GetCurrentProcess())
{
Console.WriteLine("Consumer : {0}", p.ProcessName);
}
}
}
public class Provider
{
public Provider()
{
using(Process p = Process.GetCurrentProcess())
{
Console.WriteLine("Provider : {0}", p.ProcessName);
}
}
}
输出:
Consumer : SOF
Provider : SOF
Exit ...