У меня есть код такого рода:
private static StringBuilder building = new StringBuilder();
public static bool Starting(string path, string Code)
{
using (var pv = new CSharpCodeProvider(providerOptions))
{
pv.CompileAssemblyFromSource(parameters, Code);
}
// Много кода ...
if (File.Exists(path))
{
File.WriteAllText("Log.txt", building.ToString());
return true;
}
else { return false; }
}
После запуска на кнопке UI замерает на несколько секунд.
Пробовал запустить в отдельном потоке Thread
var potinizialize = new Thread(() => { Starting("path", "code"); });
potinizialize.Start();
potinizialize.Join(); // нужно сделать ожидания завершения метода
Но даже это не помогло, форма всё ровно замерает на несколько секунд.
Какие есть возможные вариант использования? Чтобы форма не блокировалась.
Типичная проблема с забиванием UI потока. Вы, в первом случае забили его операций ввода-вывода. Во втором случае, вы, создали поток и синхронно ждете его окончания. Попробуйте это:
var potinizialize = new Thread(() => { Starting("path", "code"); });
заменить на:
await Task.Run(()=>{Starting("path", "code"); })
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Почему AFTER UPDATE триггер срабатывает при вставке новой записи в таблицу?
Сегодня весь вечер пытался решить дурацкую проблему с закрытием соединенияЕсть функция, которая запускается через setInterval (код будет ниже)
Учусь конвертировать csv файлы в формат json на php(который тоже знаю не очень), большая просьба помочь с алгоритмоместь следующий csv фрагмент...