Hej wszystkim.
Mam sobie aplikację, która coś tam robi. Generalnie jej zadanie to analiza i rysowanie wykresu na podstawie danych pobranych z pliku excel. Analizę taką można prowadzić nazwijmy to kilkutorowo (dokładnie 10 analiz jednocześnie) dlatego też każdą z nich obsługuje inny wątek. Każda z analiz jest prowadzona w osobnej zakładce tabPage kontrolki tabControl.Wszystko się ładnie liczy, rysuje itd. do momentu w którym pojawiają się trzy problemy:
-
Nie mogę odczytywać danych z jednego pliku do kilku analiz. Jeżeli jednego pliku użyję do jednej analizy to potem w drugiej tabPage, jeżeli chce z niej skorzystać to mi wywala błąd, że wybrany plik jest w użyciu. Do odczytywania danych z pliku excel korzystam z oleDBConnection. Jak zrobić aby coś takiego było możliwe.
-
To samo się tyczy zapisu do pliku (dziennik logów). Ja zmusić program aby zapisywał zdarzenia z róznych wątków do jednego pliku.
-
W momencie wykonywania się analizy gdy chce zamknąć całą aplikację wyskakuje mi okienko z komunikatem: "Trwało przerywanie wątku". Nie wiem skąd to się bierze. Obsługę zdarzenia zamknięcia aplikacji mam zakodowaną w funkcji:
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
foreach (TabPage tp in tabControl1.TabPages)
{
foreach (Control ctrl in tp.Controls)
{
if (ctrl.GetType().Equals(typeof(UserControl1)) && tp == tabControl1.SelectedTab)
{
UserControl1 us = ctrl as UserControl1;
try
{
if (us.checkStartAnaliseButton == true)
{
us.newThread.Abort();
}
}
catch(ThreadAbortException)
{
throw;
}
}
}
}
}
Nie wiem co jest nie tak.
Proszę pomóżcie mi bo już ślęczę nad tym dwa dni i nici.
Z góry dzięki za każdą pomoc Smile