Как добавить новую панель в форму после нарезания резьбы?
я использую метод потоковой передачи при создании команды sql
чтобы предотвратить замораживание моего основного приложения
но когда я пытаюсь добавить новую панель после успешного подключения к серверу
но я вызвал ошибку :
операция перекрестной резьбы недопустима..
я прочитал несколько статей из google Многие люди говорили что это не лучший способ добавить какой либо пользовательский элемент управления с помощью threading
поэтому я попробовал другой метод
1-й прервите мой поток, как вы можете видеть в openConnection, LoadConnection.Прервать (); - это должное.
после того как я прервал его я попробовал этот метод
if (loadConnection.IsAlive) { } else{ if (connectionStatus == "connectionSucceed") { } else if (connectionStatus == "connectionFail") { var panel = new Panel(){ new size(100,100), location (0,0);} } }
но на этот раз ничего не произошло.
есть ли какой-либо способ добавить любой пользовательский элемент управления в основную форму во время выполнения команды sql без замораживания пользовательского интерфейса??
Что я уже пробовал:
using System.Threading; using MySql.Data.MySqlClient; namespace databaseCommand{ public static class mainCommand { private static Thread loadConnection = new Thread(new ThreadStart(openConnection)); private static MySqlConnection con; private static string connectionStatus; public static void startConnection() { loadConnection.Start(); } private static void openConnection() { con = new MySqlConnection("server=localhost;user=root;database=bookbardatabase;port=3306;password="); try{ con.Open(); //connectionStatus = "connectionSucceed"; //conStatus = "Connected to server"; } catch (Exception ex){ //connectionStatus = "connectionFail"; //conStatus = ex.ToString(); var panel = new Panel(){ new size(100,100), location (0,0);} } //loadConnection.Abort(); } } }