我有一个 MyFunction,它可能采用多种数据类型,它们都非常相似。我只想通过多线程将所有这些不同类型的数据传递到 MyFunction 中,并在 MyFunction 中进行类型转换。这可能吗?使用字典是个好主意吗?请指教。
Main(){
Parallel.ForEach(objectType1, MyFunction)
Parallel.ForEach(objectType2, MyFunction)
Parallel.ForEach(objectType3, MyFunction)
}
MyFunction(object arg){
Dictionary<string, object> d = (Dictionary<string, object>) arg;
Type1 t1;
Type2 t2;
Type3 t3;
if (d.Key == "Type1") {
t1 = (Type1) d.Value;
ProcessType1(t1);
}
else if (d.Key == "Type2") {
t2 = (Type2) d.Value;
ProcessType2(t2);
}
else if (d.Key == "Type3") {
t3 = (Type3) d.Value;
ProcessType3(t3);
}
}
最佳答案
你可以这样做:
MyFunction (object arg) {
if (arg is Type1) { ProcessType1(arg as Type1); }
else if (arg is Type2) { ProcessType2(arg as Type2); }
else if (arg is Type3) { ProcessType3(arg as Type3); }
}
关于c# - 如何在 C# 中转换传递给 Thread 的参数的数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6499799/