Ejemplo n.º 1
0
    private async void Monster_Dead(object sender, EventArgs e)
    {
        await Task.Factory.StartNew(() =>
        {
            // Используем ReferenceEquals, потому что нам нужно сравнить object и ISurvivalData по ссылке.
            // Это делаем, чтобы избежать приведения sender к ISurvivalData.
            var viewModel = ActorViewModels.SingleOrDefault(x => ReferenceEquals(x.Actor.Person.GetModule <ISurvivalModule>(), sender));

            if (viewModel != null)
            {
                ActorViewModels.Remove(viewModel);
            }
        }, CancellationToken.None, TaskCreationOptions.None, _taskScheduler);
    }