我已经宣布我的Enums是这样的:实际上可能有不同国家的多个枚举。
例如:
public enum Country : long
{
World = (long)1,
India = (long)23424848,
US = (long)23424977
}
public enum EgyptCities: long
{
Cairo = (long)1521894,
Alexandria = (long)1522006,
Giza = (long)1521643
}
在我的控制台应用程序中,我想循环浏览这些枚举。
var country= Enum.GetValues(typeof(Country)).Cast<Country>();
var egyptcity= Enum.GetValues(typeof(EgyptCities)).Cast<EgyptCities>();
对于每个枚举,都有一个帐户关联,这意味着所有国家/地区都与一个帐户相关联,只能从中调用这些函数。例如在枚举国家帐户1只能运行。对于城市,枚举帐户2只能运行,等等。
我想在调用此应用程序时并行运行所有帐户。
account1
(
for all countries, do some operation
)
account2
( for all egypt cities do an operation
)
account3
(
for all Indian cities do an operation.
)
这些都是独立的操作。目前我一个接一个地运行所有这些操作,但我希望它们是并行/异步的。
请让我知道这是如何实现的?
感谢,
答案 0 :(得分:1)
你的问题很模糊。但一般的答案是,在控制台应用程序中同时执行代码的方法有很多很多。
最明显的是使用Task
。例如:
public static void Main(string[] args)
{
Task task1 = Task.Run(() => ProcessAccount1()),
task2 = Task.Run(() => ProcessAccount2()),
task3 = Task.Run(() => ProcessAccount3());
Task.WaitAll(task1, task2, task3);
}
...每个方法ProcessAccountX()
执行以下操作:
void ProcessAccount1()
{
var countries = Enum.GetValues(typeof(Country)).Cast<Country>();
foreach (var country in countries)
{
// do some operation
}
}
如果您需要更具体的建议,则需要编辑您的问题,以便您提出(更多)更具体的问题。有关如何改进问题的建议,请参阅https://stackoverflow.com/help/how-to-ask和https://stackoverflow.com/help/mcve。