2009-10-11 5 views
1

let parallelTest n = Цвет (Color.DeepPink, Треугольники (сфера n)) ;;Что я делаю неправильно в этом коде F #?

Parallel.For (0,10, новое действие (parallelTest)) ;;

Сообщение об ошибке: ошибка FS0001: несоответствие типов. Ожидая int -> unit , но с учетом int -> scene. Тип 'unit' не соответствует типу 'scene'

Я буду рад, если мне поможет какое-то тело.

+0

Основываясь на вашем коде и некоторых ваших комментариях, похоже, что вы не полностью вписываетесь в стиль программирования F #. Можете ли вы опубликовать свой код и описать, что вы на самом деле пытаетесь сделать? – Juliet

ответ

0

В каком положении происходит это сообщение об ошибке? (Я не могу воспроизвести ошибку, так как я не знаю delcarations некоторых функций, которые вы используете)

Я предполагаю следующее: Parallel.For ожидает int -> unit (Action<int> в стандартном .NET), но parallelTest имеет другой тип (int -> scene), что поэтому несовместимо.

И чего вы пытаетесь достичь целым кодом?

+0

Привет, Dario, спасибо за вашу помощь. Я пытаюсь параллельно использовать параллельное подпрограммирование, но я стараюсь использовать этот Parallel.For как средство облегчить мою работу, чтобы сделать эту версию параллельно. У вас есть какие-нибудь советы для меня, чтобы сделать это легко и параллельно? Еще раз спасибо. – Angelica

4

Составьте функцию с ignore, чтобы сделать его вернуть unit:

Parallel.For(0, 10, parallelTest >> ignore) 
+0

Привет, Маурисио, спасибо за вашу помощь. Оно работает!!!!!!! Но теперь мне нужно знать, как я могу вернуть тип сцены для этого? В очередной раз благодарим за помощь. – Angelica

+0

Parallel.For не возвращает никакого значения. Это может помочь вам: http://weblogs.asp.net/podwysocki/archive/2009/02/23/adding-parallel-extensions-to-f.aspx. Создайте другие вопросы, если у вас есть больше сомнений. –

3

Если вы хотите 10 результатов, возможно, вы хотите

[| for i in 0..9 do 
     async { return parallelTest i } |] 
|> Async.Parallel 
|> Async.RunSynchronously 

Это возвратит массив из 10 результатов сцены.