Szukałem rozwiązania tego problemu przez długi czas bez powodzenia.F # dispatcher.invoke i delegate method
Przenoszę niektóre z mojego kodu C# do F # i walczę z Dispatcher.Invoke dla elementu WPF. Ponieważ jestem totalnym noobem w F #, jedyną rzeczą, na którą jestem pewien, jest to, że problem leży między krzesłem a klawiaturą.
Oto mój kod C#:
foreach (var k in ChartList.Keys)
{
ChartList[k].Dispatcher.Invoke(
System.Windows.Threading.DispatcherPriority.Normal,
new Action(
delegate()
{
ChartList[k].Width = area.Width/totalColsForm;
ChartList[k].Height = area.Height/totalRowsForm;
ChartList[k].Left = area.X + ChartList[k].Width * currentCol;
ChartList[k].Top = area.Y + ChartList[k].Height * currentRow;
ChartList[k].doShow();
}
));
}
Część walczę o to nowe działanie (delegat() ...). Kompilatorowi nie podobała się żadna z moich prób jego przetłumaczenia.
Jakie byłoby tłumaczenie tego fragmentu w języku F #?
Co próbowałeś? Spodziewałbym się, że 'fun() -> ...' lub 'Action (fun() -> ...)' zadziała. – Daniel
@ Daniel, dokładnie próbowałem obu bez powodzenia. Otrzymałem komunikat "Żadne przeciążenia nie pasują do metody" Invoke "" => jest to tłumaczenie metody delegata, która jest problemem – Anass