public void printMessage(string message)
{
try
{
if (this.InvokeRequired)
{
try
{
this.Invoke(new WriteLineHandler(printMessage), new object[] { message });
}
catch (Exception)
{
}
}
else
{
if (message.Length > 0)
{
StringBuilder sb = new StringBuilder();
sb.Append(DateTime.Now.ToString("G"));
sb.Append(": ");
sb.Append(message);
sb.Append("\n");
sb.Append(richTextBox.Text);
richTextBox.Text = sb.ToString();
}
}
}
catch (Exception)
{
}
}
this.Invoke(new WriteLineHandler(printMessage), new object[] { message });
Эта линия занимает много времени для выполнения. Может кто-нибудь помочь мне увеличить производительность.Вопрос о выпуске для делегатов
Сколько это стоит времени? Долго по сравнению с вашими ожиданиями или другим кодом? – Szymon
У меня есть API, который выполняет 10000 раз, и это заняло 2 часа. Если я удалю эту строку this.Invoke (новый WriteLineHandler (printMessage), новый объект [] {message}); он выполняется всего за 11 минут. Поэтому есть много изменений, но я не понимаю, как свести к минимуму этот код. Пожалуйста, помогите мне –
Что ** ** ** ваш метод 'Invoke'? Вы можете вызвать метод напрямую, 'printMessage (message);'? Может быть, ваша настоящая проблема - непреднамеренная бесконечная рекурсия? –