Как избежать многопоточной задачи по сбору мусора?C#

Место общения программистов C#
Ответить
Anonymous
 Как избежать многопоточной задачи по сбору мусора?

Сообщение Anonymous »

Предположим, вы хотите выполнить статическую задачу, не ожидая ее, и вы хотите выполнить эту задачу в команде экземпляра ViewModel страницы в проекте MVVM.
Это Задача должна просто вызвать API для отправки некоторой информации о событии, и вы хотите просто запустить ее, не дожидаясь ее, чтобы не блокировать бесполезно другие вещи, которые вы хотите выполнить, пока Задача выполняется, не дожидаясь ее завершения.Посмотрим упрощенный пример:
Внутри команды ViewModel:

Код: Выделить всё

// Purchase completed


// API Call to send event
await Task.Run(() => { _ = ApiService.PostEvent("purchased"); });

// Navigate Back

Дело в том, что если вы вернетесь назад до того, как задача будет завершена, ViewModel и поток задачи тоже будут собирать мусор, поэтому задача никогда не завершится.
Как я могу это предотвратить?
Могу ли я запустить Задача в потоке, который никогда не будет уничтожен, даже если его создатель будет уничтожен?
Или мне следует подойти совершенно по-другому?

Подробнее здесь: https://stackoverflow.com/questions/793 ... -collected
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»