У меня есть следующий код:Список изменений извне, а итерируемая
private static List<String> MyList;
static void Main()
{
MyList = new List<String>();
var websocketClient = new WebSocket("wss://ws.mysite.com");
websocketClient.MessageReceived += IterateMyList;
var updateListTimer = new Timer();
updateListTimer.Elapsed += UpdateMyList;
Console.ReadLine();
}
public static void IterateMyList(object sender, EventArgs e)
{
foreach (var item in MyList)
{
//Do Something with the item
}
}
public static void UpdateMyList(object sender, EventArgs e)
{
// Add new items to and remove items from MyList.
}
Что происходит, когда таймер тика и новые события WebSocket сообщения сталкиваются?
IterateMyList() будет выполнять итерацию MyList и UpdateMyList() будет обновлять его одновременно.
Получу ли я исключение?
Посмотрите на 'ConcurrentBag' – SimpleVar