Перейти к содержимому


Фотография

потоки


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 5

#1 OFFLINE   lopster102

lopster102

    Ст.сержант

  • Пользователи
  • 267 сообщений
  • Откуда:mscw

Отправлено 19 July 2017 - 19:31

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


  • 0

#2 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 19 July 2017 - 19:51

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



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

#3 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 сообщений
  • Откуда:РФ

Отправлено 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 сообщений
  • Откуда:mscw

Отправлено 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 нельзя использовать внутри кода

}


Сообщение отредактировал lopster102: 20 July 2017 - 23:05

  • 0

#5 OFFLINE   vlad333000

vlad333000

    Полковник

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

Отправлено 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 Я предсатвить себе не могу где такое извращение может пригодиться

Сообщение отредактировал vlad333000: 21 July 2017 - 00:04

  • 0

#6 OFFLINE   lopster102

lopster102

    Ст.сержант

  • Пользователи
  • 267 сообщений
  • Откуда:mscw

Отправлено 21 July 2017 - 04:07

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


  • 0




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