Компьютерный форум NoWa.cc Здесь может быть Ваша реклама
Правила Форума
редакция от 22.06.2020
Форум .::NoWa.cc::.
Вернуться   Компьютерный форум NoWa.cc > В помощь вебмастеру > Программирование > .NET

Уважаемые пользователи nowa.cc. Мы работаем для вас более 20 лет и сейчас вынуждены просить о финансовой помощи по оплате за сервер.
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже.
Webmoney Webmoney WMZ: Z021474945171 Webmoney WME: E159284508897 Webmoney WMUSDT: T206853643180
Кошелёк для вашей помощи YooMoney 4100117770549562
YooMoney Спасибо за поддержку!

Ответ
 
Опции темы Опции просмотра Language
Старый 09.01.2008, 19:05   #1
Постоялец
 
Аватар для Ivan_32
 
Регистрация: 23.12.2007
Адрес: FFFF:64E9
Сообщений: 221
Репутация: 64
По умолчанию Кроспоточный блок в C#

Уважаемы камрады помогите пожалуйста справится с задачей .
Есть некий поток в Windows Apllication который запускается и работаеш очень долго надо что бы он при каждом переходе на новую итерацию
инкриментировал public static int a
проблема в том что такое действие приравнивается к кроспоточному програмингу с техниками коего я незнаком тоесть такая проа просто не компилится .
__________________
Проблема есть следствие ее решения...
Чем больше я узнаю, тем больше чувствую себя дураком.
Ivan_32 вне форума
 
Ответить с цитированием Вверх
Здесь может быть Ваша реклама
Здесь может быть Ваша реклама


Реклама: газовые плитыкупить съедобный букетasus geforce rtx 5070Заходите на сайт MebelStol.ru: пеленальный столик с комодом - отличные цены и большой выбор!обзор барнхаус


Старый 09.01.2008, 20:39   #2
pluton
ViP
 
Аватар для pluton
 
Пол:Мужской
Регистрация: 23.02.2007
Сообщений: 1,027
Репутация: 560
По умолчанию Ответ: Кроспоточный блок в C#

Цитата:
Сообщение от Ivan_32 Посмотреть сообщение
такая проа просто не компилится

что пишет? возможно, нужно поставить какието опции в свойствах проекта
для инкремента желательно использовать атомарные функции, например, для увеличения - Interlocked.Increment(). фишка этих функций в том, что их работу нельзя прервать
__________________
THE TRUTH IS OUT THERE
pluton вне форума
 
Ответить с цитированием Вверх
Старый 10.01.2008, 12:21   #3
Ivan_32
Постоялец
 
Аватар для Ivan_32
 
Регистрация: 23.12.2007
Адрес: FFFF:64E9
Сообщений: 221
Репутация: 64
По умолчанию Ответ: Кроспоточный блок в C#

Ну пишет что попытка доступа к элэменту который был создан в другом потоке . Кароч мне надо организовать мониторинг работы потока .
А что за атомарные функции ?
__________________
Проблема есть следствие ее решения...
Чем больше я узнаю, тем больше чувствую себя дураком.
Ivan_32 вне форума
 
Ответить с цитированием Вверх
Старый 10.01.2008, 16:39   #4
pluton
ViP
 
Аватар для pluton
 
Пол:Мужской
Регистрация: 23.02.2007
Сообщений: 1,027
Репутация: 560
По умолчанию Ответ: Кроспоточный блок в C#

Цитата:
Сообщение от Ivan_32 Посмотреть сообщение
Ну пишет что попытка доступа к элэменту который был создан в другом потоке . Кароч мне надо организовать мониторинг работы потока

может сделать, чтобы наш тред вызывал на итерациях какуюто функцию класса?

Цитата:
Сообщение от Ivan_32 Посмотреть сообщение
А что за атомарные функции ?

смотри, например, есть код: a += 10;
мы точно не знаем как компилер переведёт этот код в асмовый код, может так:
Код:
mov eax, a
add eax, 10
mov a, eax
так вот, допустим, после выполнения команды add eax, 10 планировщик потоков остановит этот тред и запустит тред, который считает инфу из a, которая ещё не обновилась. чтоб этого не допустить нужно юзать атомарные функции, они изменяют переменную атомарно, тоесть функцию нельзя прервать
__________________
THE TRUTH IS OUT THERE
pluton вне форума
 
Ответить с цитированием Вверх
Старый 11.01.2008, 00:32   #5
Ivan_32
Постоялец
 
Аватар для Ivan_32
 
Регистрация: 23.12.2007
Адрес: FFFF:64E9
Сообщений: 221
Репутация: 64
По умолчанию Ответ: Кроспоточный блок в C#

Да и деяйка с методом класса в треде прокатила большое спасибо
но все же меня интересует где это ест и что за функция такая.
Interlocked.Increment()
__________________
Проблема есть следствие ее решения...
Чем больше я узнаю, тем больше чувствую себя дураком.
Ivan_32 вне форума
 
Ответить с цитированием Вверх
Старый 11.01.2008, 01:11   #6
pluton
ViP
 
Аватар для pluton
 
Пол:Мужской
Регистрация: 23.02.2007
Сообщений: 1,027
Репутация: 560
По умолчанию Ответ: Кроспоточный блок в C#

Цитата:
Сообщение от Ivan_32 Посмотреть сообщение
но все же меня интересует где это ест и что за функция такая.
Interlocked.Increment()

вот:
Цитата:
.NET Framework Class Library
Interlocked.Increment Method
Interlocked.Increment (Int32) Increments a specified variable and stores the result, as an atomic operation.
Supported by the .NET Compact Framework.

может подойдёт адрес ms-help://MS.MSDNQTR.v80.en/MS.MSDN.v80/MS.NETDEVFX.v20.en/cpref12/html/O_T_System_Threading_Interlocked_Increment.htm из мсдна
это и есть атомарная функция инкремента
__________________
THE TRUTH IS OUT THERE
pluton вне форума
 
Ответить с цитированием Вверх
Старый 29.04.2008, 21:48   #7
seimur
Неактивный пользователь
 
Пол:Мужской
Регистрация: 04.12.2007
Сообщений: 32
Репутация: 4
По умолчанию Ответ: Кроспоточный блок в C#

Если используется мультипоточность и нет синхронизаций, типа оператора lock, не помешает добавить волшебное словечко volatile
seimur вне форума
 
Ответить с цитированием Вверх
Ответ


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
про блок питания gelezyka Скорая помощь 23 28.05.2010 09:43
блок питания vetaliysch Компьютерные проблемы 5 14.10.2009 06:11
Блок питания oleg_bass Компьютерное Железо 2 09.12.2008 18:07
Блок на Mozilla Neu Архив 3 16.02.2008 22:59
Блок питания vohaUS Архив 2 04.02.2008 13:17

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 08:56. Часовой пояс GMT +3.


Copyright ©2004 - 2025 NoWa.cc

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2026, vBulletin Solutions, Inc. Перевод: zCarot
Время генерации страницы 0.06582 секунды с 13 запросами