Для первой части вы можете использовать мьютекс (lock
оператор ) или даже один из Interlocked
методов .
int counter = 0;
object counterLock = new object();
void IncreaseCounter()
{
lock (counterLock)
counter++;
}
int GetCounter()
{
lock (counterLock)
return counter;
}
или
int counter = 0;
void IncreaseCounter()
{
Interlocked.Increment(ref counter);
}
int GetCounter()
{
return Interlocked.Read(ref counter);
}
Для использования из графического интерфейса пользователя вы можете распространить изменения своего счетчика на соответствующий DependencyProperty (если вы используете WPF).
Для второй части, почему не может быть отметка временирассчитываться для каждой записи индивидуально, чтобы вам не приходилось делить что-либо между потоками?Может быть, я не правильно понял ваш вопрос, не могли бы вы описать проблему №2 более подробно?