다른 종류의 ConcurrentQueues를 처리 할 수있는 유연한 메서드를 작성하려고합니다. 대부분의 논리가 큐를 처리하기 때문에 동일합니다.concurrentQueue tryDequeue 알 수없는 결과와
그것은 조금 다음과 같습니다
private void StartDoWorkButton(object sender, EventArgs e)
{
StartDoWork();
}
private ConcurrentQueue<TestData> myQueue = new ConcurrentQueue<TestData>();
private void StartDoWork()
{
DoWork(myQueue, new TestData());
}
private void DoWork(dynamic queue,object objectType)
{
dynamic outResult = Activator.CreateInstance(objectType.GetType());
while(queue.TryDequeue(out outResult))
{
//do something
}
}
outResult가 올바른 유형의 것 같다,하지만이 메시지를 얻을 : "System.Collections.Concurrent.ConcurrentQueue '에 가장 적합한 오버로드 된 메서드 일치.
private void DoWork(dynamic queue,object objectType)
{
TestData outResult;// hardcoded type
while(queue.TryDequeue(out outResult))
{
//do something
}
}
내가 WOR 수있는 방법이 있나요 '(WinformWith10pxNewProject1.TestData 아웃) TryDequeue는 일부 잘못된 인수 "
것은 내가이 작업을 수행 할 때 잘 작동한다있다 유형의 하드 코딩 주위 k? 내가 만드는 방법에 대해 많은 유연성을 줄 것입니다.
종류와 관련,
Matthijs
동력학을 사용해서는 안됩니다. 자세한 내용은 여기를 참조하십시오 : http://stackoverflow.com/questions/2674906/when-should-one-use-dynamic-keyword-in-c-sharp-4-0 –