Я пишу код с ядром asp. net и Signalr, где есть метод:
public async void newGameTimer(int tableID )
{
bool stop = true;
int val = 0;
while (stop)
{
await Task.Delay(1000);
val++;
if (val > 5)
{
stop = false;
newGame(tableID);
}
}
}
Затем в методе newGame (tableID), который выглядит следующим образом:
public async void newGame(int tableID)
{
await Clients.Group(group).SendAsync("updateTotalPot", 200);
}
Я отправляю асинхронный ответ группе игроков через signalR Group. но выдает ошибку
'System.ObjectDisposedException:' Невозможно получить доступ к удаленному объекту. ObjectDisposed_ObjectName_Name '
Я выполнил поиск и получил ответ, что «Task.Dealy ()» может создать ошибку ObjectDisposed. Теперь не могу понять, как решить проблему.
Я просто хочу подождать какое-то время, а затем отправить ответ группе игроков .. Кто-нибудь может мне помочь?
Project : Онлайн-игра в покер в реальном времени Онлайн-игра в покер, в которой группа друзей может создать стол и играть в покер вместе. Frontend: React Backend: asn. net core, Signalr, Redis
Logi c: Первый игрок создает таблицу, вызывая метод:
public async Task LoginWindow(string name, string password, int newTable, int joinTable)
{
//- this method saves many keys in Redis in-memory like this
dbr.StringSet("table" + "ToBet", 0);
//- at end send reply with following command
await Clients.Caller.SendAsync("updateMessage", "Welcome to table no " + tableID);
//- then this method check, if second player has called this method, then calls the timer to start game after 5 seconds
newGameTimer(tableID);
}
nothing else...