2014-11-15 1 views
1

MVVMcross Xamarin 응용 프로그램을 만들고 스레드를 돌려서 결과를 얻고 다시 호출 할 때 목록을 업데이트하려고합니다. 나는 Win 8과 iOS를 사용하기 전에 이런 종류의 일을했지만, System.Threading.ThreadPool은 내가 사용하고있는 프로파일에서 사용할 수없는 것으로 보인다. ThreadPool.QueueUserWorkItem()은 MVLMCross 용 PCL에서 사용할 수 없음 3.2.1

ThreadPool.QueueUserWorkItem(CallBack, DoStuff); 

내가 여기서 뭔가를 잊어 버리거나가 더 이상 어떻게하는지이 단지 아니다 건가요 (259 또는 79 내가 사용하고있는 한 기억할 수없는 프로필하지만 MVVMCross 3.2.1입니다).

답변

4

ThreadPool.QueueUserWorkItem에 대한 대체 Task.Run입니다 :

Task result = Task.Run(() => DoStuff()); 

업데이트

Task.RunTask.Factory.StartNew이 같은 행동되지 않도록 유의하시기 바랍니다. 이 주제에 대한 Stephen Toub의 멋진 blog post을 참조하십시오.

+0

내가 찾은 대체물은 TaskFactory.StartNew()와 동일하거나 더 복잡한 방식입니다. – Jhayes2118

+1

이 경우에는 종종 async 메소드를 사용합니다. 결과에'await'을 사용하지 않고 그냥'async' 메소드를 호출하면됩니다. 이것은 주로 네트워크 IO 바인딩 인 "백그라운드 작업"에 대해서는 잘 작동하지만 "배경 작업"이 계산 상으로 무거울 경우에는 작동하지 않습니다. – Stuart

+0

굉장합니다. 빠르고 도움이되는 답변에 감사드립니다. – Jhayes2118