Mam aplikację, która do tej pory była zbudowana w całości w oparciu o Windows Forms. Obecnie powstała potrzeba, by jedno z jej okienek zamienić na WPF. Niestety, kod, który działał bez problemów na Windows Formsach, teraz rzuca następujący wyjątek:
at System.Threading.Thread.StartInternal(IPrincipal principal, StackCrawlMark& stackMark)
at System.Threading.Thread.Start(StackCrawlMark& stackMark)
at System.Threading.Thread.Start()
at Projekt.Klasa.Metoda_Load(Object sender, EventArgs e) in h:\WORK\Projekt\Projekt\Klasa.cs:line 545
Kod jest rzucany w momencie:
var t = new Thread(StartProc, int.MaxValue);
t.Start();
Zawartość StartProc raczej nie ma znaczenia, bo 1. jest taka sama jak w wersji dla Windows Forms, 2. kod tam wcale nie dociera.
Generalnie tworzenie formatek jest raczej banalne, nic ciekawego (kod w pliku cs okienka WPF):
<code class="c#">
var form = new KlasaMojegoWindowsForm
{
Parametr1 = parametr1,
Parametr2 = parametr2
};
form.Show();
A sam start nowego wątku odbywa się w metodzie Load tej formy.
Czy macie może jakieś podpowiedzi, na co zwrócić uwagę, jak znaleźć przyczynę...? Czy wołanie Windows Formsa z WPFa ma jakieś ograniczenia, o których nie wiem? Dlaczego OutOfMemory, chociaż nie ma tu żadnej pętli tworzącej obiekty ani jakiegoś specjalnego napychania danych?