Показать сообщение отдельно
Старый 06.04.2012, 19:23   #1
Halk-DS
Разработчик
 
Аватар для Halk-DS
 
Регистрация: 09.08.2006
Адрес: Украина
Сообщений: 431
Написано 65 полезных сообщений
(для 53 пользователей)
Использование FastPointer

Проблема заключается в моем представлении о многопоточности. Если судить с примера звука в блице. Команда EmitSound(S,E) издает звук, и в не зависимости от того какой он длинны (3сек, 15сек и >) вся другая логика продолжается. То есть я делаю вывод что обработка звука пошла в другой независимый поток.
Я скачал FastPointer библиотеку и разбирал примеры лежащие в ней. Хотел б рассмотреть конкретный случай с вызовом функций:
MyFunctionFirstPointer = FunctionPointer();Это как я понимаю процесс 
;привязки функции к переменной, которую мы сможем в любой момент вызвать.


	Goto skip
	MyFunctionFirst(); Тогда зачем это?
	.skip
	
;Было б проще понять следующий метод описывания переменной для привязки:
;MyFunctionFirstPointer = FunctionPointer(MyFunctionFirst())[
; Ну да тут ладно. В примере с Массивами это выглядит не так уж непонятно.

MyFunctionSecondPointer = FunctionPointer(); дубль два
	Goto skip1
	MyFunctionSecond(0)
	.skip1


;Вот это место как я понял должно мне сообщить что то очень важное...
;Но погуглив я понимаю только что Hex() переводит число в 16численную систему
;А саму суть не уловил.
Print "First function pointer: $"+Hex(MyFunctionFirstPointer)
Print "Second function pointer: $"+Hex(MyFunctionSecondPointer)


;И главное. Эти функции вызвались, и в моем понимании они должны пойти
;В другой независимый поток как в случае с EmitSound(S,E)
CallFunction (MyFunctionFirstPointer)
CallFunctionVarInt (MyFunctionSecondPointer,12345)




; Но немного отредактировав функции я вижу что вторая функция перед
;вступлением в дело ждет исполнения 1-й функции. Так хде ш тут многопоточность?
Function MyFunctionFirst ()
	Print "MyFunctionFirst called!"
	For j=1 To 100
	Print J
	Delay 10
	Next
End Function


Function MyFunctionSecond (variable)
	Print "MyFunctionSecond called with variable: "+Str(variable)
	For J=-100 To -1
	Print J
	Delay 10
	Next
End Function
Как я понимаю в моем случае блиц должен приблизительно по очереди выводить на экран 1, -100, 2, -99, 3, -98 и т.д.
Помогите пожалуйста понять, как в принципе устроена многопоточность и в частности эта библиотека?
Приветствуется посылания на хорошие статейки...
(Offline)
 
Ответить с цитированием