내가 안드로이드에 대한 모노의 그릇에 깊은 통찰력을 얻기 위해이 부탁 해요, 내 모바일 앱을 지원할 때 더 나은 길을 준비 할 스레딩 변종 ...MonoDroid - StartService
나는 눈치 때 "기본 실행 프로그램"활동에서 시작된 작업자 스레드에서 StartService를 호출하는 것은 서비스의 OnStartCommand에있는 스레드 ID가 활동 스레드 ID (1)와 같고 시작된 작업자 스레드의 ID (3)가 아니라는 것입니다.
myActivity : Activity
{
OnCreate
{
print_thread_id() // 1
start(thread_func)
}
thread_func()
{
print_thread_id() // 3 (not 2!, but anyway ...)
StartService(myService)
}
}
myService : Service
{
OnStartCommand
{
print_thread_id() // 1 also!!!
}
}
나는 또한 것으로 나타났습니다 내 작업자 스레드 내에서, thread_func, StartService이 서비스가 계속 실행에도 불구하고 반환 : 여기
는보다 추상적 인 표현입니다. myService가 종료 될 때까지 StartService에 대한 호출이 차단 될 것이라고 생각했습니다.myService.OnStartCommand의 스레드 ID가 thread_func의 스레드 ID와 다른 이유는 무엇입니까? ThreadService.OnStartCommand의 스레드 ID가 thread_func와 같지 않은 이유는 무엇입니까?
감사합니다.
어떻게 시작 하시겠습니까? System.ComponentModel.BackgroundWorker를 사용하여 System.Threading.Thread 인스턴스를 만들고 있습니까? – joates
System.Threading.Thread – samosaris