Jump to content


Photo

потоки


  • Please log in to reply
5 replies to this topic

#1 OFFLINE   lopster102

lopster102

    Ст.сержант

  • Пользователи
  • 267 posts
  • Откуда:mscw

Posted 19 July 2017 - 19:31

кто подскажет как можно проверить запущен ли код в другом потоке?!запускаю два кода одновременно нужно узнать запущен ли этот код еще гденибудь и сколько раз ?!


  • 0

#2 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 posts
  • Откуда:Кострома

Posted 19 July 2017 - 19:51

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание



PS Нах такое извращение то?
  • 0

#3 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 posts
  • Откуда:РФ

Posted 20 July 2017 - 16:13

fn_process_1 = {
	// code

	handle_process_1 = nil;
};

fn_process_2 = {
	// code

	handle_process_2 = nil;
};

handle_process_1 = 0 spawn fn_process_1;
handle_process_2 = 0 spawn fn_process_2;

if (isNil "handle_process_1") then {
	// процесс не инициализирован
	// инициализировать процесс
	handle_process_1 = 0 spawn fn_process_1;
} else {
	// процесс инициализирован
	// убить процесс
	terminate handle_process_1;
};

  • 0

#4 OFFLINE   lopster102

lopster102

    Ст.сержант

  • Пользователи
  • 267 posts
  • Откуда:mscw

Posted 20 July 2017 - 22:56

fn_process_1 = {
	// code

	handle_process_1 = nil;
};

fn_process_2 = {
	// code

	handle_process_2 = nil;
};

handle_process_1 = 0 spawn fn_process_1;
handle_process_2 = 0 spawn fn_process_2;

if (isNil "handle_process_1") then {
	// процесс не инициализирован
	// инициализировать процесс
	handle_process_1 = 0 spawn fn_process_1;
} else {
	// процесс инициализирован
	// убить процесс
	terminate handle_process_1;
};

{

//******************code - x6 раз одновременно***********************///

необходим метод который позволит вычленить 1 из 6 потоков и удалить все остальные

uisleep нельзя использовать внутри кода

}


Edited by lopster102, 20 July 2017 - 23:05.

  • 0

#5 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 posts
  • Откуда:Кострома

Posted 20 July 2017 - 23:39

//FUNC1
//Define global array if not defined
if (isNil {missionNamespace getVariable "MyVar"}) then {
  missionNamespace setVariable ["MyVar", []];
};

//Call target function
private _hScript = _this spawn FUNC2;

//Save called function
(missionNamespace getVariable "MyVar") pushBack _hScript;

//Remove first function call by random
if ((random 10) > 7) then {
  terminate ((missionNamespace getVariable "MyVar") deleteAt 0);
};
PS Я предсатвить себе не могу где такое извращение может пригодиться

Edited by vlad333000, 21 July 2017 - 00:04.

  • 0

#6 OFFLINE   lopster102

lopster102

    Ст.сержант

  • Пользователи
  • 267 posts
  • Откуда:mscw

Posted 21 July 2017 - 04:07

всем спасибо за ответы!Сделал через uisleep все таки.....


  • 0




Яндекс.Метрика