내 SignalR2 허브에 OnConnected() 메소드뿐만 아니라 클라이언트에서 호출되는 비동기 메소드 인 StartMyTask()를 추가했습니다. 그러나 때마다 OnConnected는 결코 실행되지 않습니다 허브에 연결 (또는 base.OnConnected() 반환) 결코 충돌하지됩니다 :SignalR 비동기 작업
public override Task OnConnected()
{
StartMyTask().Wait(); // add stuff to db here
return base.OnConnected();
}
static async Task StartMyTask()
{
await Task.Run(() =>
{
Thread.Sleep(10);
});
}
- 왜 내가 연결할 수 없습니다입니다 :
허브를? StartMyTask를 작업이 아닌 것으로 만들면 작동합니다.
- 내가 DB 쓰기를 기다릴 필요가 없다면 Wait()을 제거하겠다고 가정합니다. - 맞습니까? 연결이 발생하여 DB가 쓴다면 문제가 발생합니까?
가 작동하지 않습니다 기다리고 있습니다. StartMyTask() - Wait() 키워드없이 작동하지만 OnConnected가 종료 된 후 DB에 물건을 저장하는 데 문제가 있습니까? -이 방법은 작동합니다 ... 이미 연결되어 있고 정보가 나중에 저장되면 어떻게됩니까? – BobSwanson
도 StartMyTask()와 같은 태스크 t = StartMyTask()입니까? – BobSwanson
@BobSwanson : 답변에서와 같이 그냥 비동기로 설정하면 '대기'가 작동합니다. –