powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Предупредить асинхронный вызов методов статического класса из разных потоков
3 сообщений из 3, страница 1 из 1
Предупредить асинхронный вызов методов статического класса из разных потоков
    #39488671
Old_Fish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Метод SomeMethod() вызывается из 1-го потока.
Если вслед за этим метод вызывается из 2-го потока, нужно дождаться завершения его вызова из 1-го потока. Прокатит ли подобный код?
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
public static class SomeClass
{
	private static bool is_running = false;
	public static void SomeMethod()
	{
		while(is_running) Sleep(100);
		is_running = true;
			
		// Здесь код метода
		
		is_running = false;
		return;
	}
}
...
Рейтинг: 0 / 0
Предупредить асинхронный вызов методов статического класса из разных потоков
    #39488678
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Old_Fish,

нет. надо так:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
public static class SomeClass
{
	private static object syncObject = new object();

	public static void SomeMethod()
	{
                lock(syncObject) {
   		   // Здесь код метода
                }
		return;
	}
}
...
Рейтинг: 0 / 0
Предупредить асинхронный вызов методов статического класса из разных потоков
    #39488963
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttOld_Fish,

нет. надо так:


Или пометить метод
Код: c#
1.
 [MethodImpl(MethodImplOptions.Synchronized)]
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Предупредить асинхронный вызов методов статического класса из разных потоков
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]