Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
2290 / 1606 / 400
Регистрация: 26.06.2017
Сообщений: 4,772
Записей в блоге: 1

Старый софт или что-то другое

17.10.2025, 09:40. Показов 3285. Ответов 38
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго дня всем читающим.

Почему возникает ошибка для textValue "параметр не доступен в текущем контексте" в вот такой конструкции?
C#
1
2
3
4
5
6
7
8
9
private async void MyAsyncMetod(string textValue)
{
  await Task.Run(() => MethodWithParameter(textValue));
}
 
private void MethodWithParameter(string param)
{
    //работа
}
Для исправления ситуации приходится выполнять захват параметра вот так:
C#
1
2
3
4
5
private async void MyAsyncMetod(string textValue)
{
  string textParam = textValue;
  await Task.Run(() => MethodWithParameter(textParam));
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
17.10.2025, 09:40
Ответы с готовыми решениями:

Или использовать интерфейс или что то другое
Есть новый класс "WebElementEx2" который унаследовать от интерфейса "IWebElement". public...

Софт крашится на другом пк , без ошибок . Поиск причины
Здравствуйте , есть софт . Работает в многопотоке и использует tesseract (возможно это важно) На...

Софт для создания Интернет Магазина [ASP]
Нужен софт для создания шоблонов Интернет Магазина типа корзина с использованием ASP Всем Спасибо

38
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3453 / 2774 / 575
Регистрация: 04.09.2018
Сообщений: 8,725
Записей в блоге: 3
17.10.2025, 20:46
Студворк — интернет-сервис помощи студентам
4.0 имел в виду (опечатался).
Ошибка "параметр не доступен в текущем контексте" - тоже встречался, но давно и не помню где.
0
2290 / 1606 / 400
Регистрация: 26.06.2017
Сообщений: 4,772
Записей в блоге: 1
19.10.2025, 11:01  [ТС]
Ого какая реакция в теме - приятно удивлён господа.
Да FW старый, в понедельник сообщу точно, т.к. проект, из которого рождён пример в этой теме, на работе. Я собственно осознавая древность фреймворка так тему и назвал.
0
Эксперт .NET
 Аватар для Wolfdp
3790 / 1767 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
19.10.2025, 18:53
Uswer, перепроверьте ещё за одно что там точно просто переменная дёргается, а не свойства контролов.
0
2290 / 1606 / 400
Регистрация: 26.06.2017
Сообщений: 4,772
Записей в блоге: 1
20.10.2025, 08:52  [ТС]
Уточняющая информация: проект на Net Framework 4.8; В метод передаётся свойство, но не контрола, а ViewModel-и. Естественно, что данное свойство привязано к View. Сам проект построен по шаблону MVVM.
0
1341 / 920 / 265
Регистрация: 08.08.2014
Сообщений: 2,775
20.10.2025, 09:13
Цитата Сообщение от Uswer Посмотреть сообщение
проект на Net Framework 4.8
Не повторяется. Даже если принудительно выставить версию C# в 5.0 (ниже нельзя, там асинков не было). Даже если использовать VS2019.

А как именно происходит вызов 'MyAsyncMetod'?

P.S.: может, от версии компилятора зависит?
0
Эксперт .NET
 Аватар для Wolfdp
3790 / 1767 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
20.10.2025, 09:32
Цитата Сообщение от kotelok Посмотреть сообщение
Даже если принудительно выставить версию C# в 5.0 (ниже нельзя, там асинков не было)
Занятно, а почему у меня на 4.5 получилось?

Добавлено через 2 минуты
Uswer, asp.net, WPF, WinForms?
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3453 / 2774 / 575
Регистрация: 04.09.2018
Сообщений: 8,725
Записей в блоге: 3
20.10.2025, 10:14
Цитата Сообщение от Wolfdp Посмотреть сообщение
asp.net, WPF, WinForms?
Цитата Сообщение от Uswer Посмотреть сообщение
не контрола, а ViewModel-и
Видимо, WPF.
Ветка вопроса ввела всех в заблуждение: все начали думать про базовые вещи Task-ов, а тут вон че, оказывается..
0
2290 / 1606 / 400
Регистрация: 26.06.2017
Сообщений: 4,772
Записей в блоге: 1
20.10.2025, 10:20  [ТС]
WPF
0
1341 / 920 / 265
Регистрация: 08.08.2014
Сообщений: 2,775
20.10.2025, 10:47
Цитата Сообщение от Wolfdp Посмотреть сообщение
Занятно, а почему у меня на 4.5 получилось?
Потому что я на этот документ ориентировался, и тут 4.5 в списке отсутствует:
https://learn.microsoft.com/en... ge-version
0
Эксперт .NET
 Аватар для Wolfdp
3790 / 1767 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
20.10.2025, 11:10
Uswer, хз, потыкал -- всё работает. Даже знакомый мне баг с тем что создание ICommand вне UI потока не получилось воспроизвести (шо странно, но фиг с ним).

Учитывая что изначально вы указали "параметр не доступен в текущем контексте" и гугл/нейронка не знают об такой ошибки в рантайме, на ум приходит только для компиляции когда неправильно обращаемся к переменной (например затесалась кирилица).
0
1341 / 920 / 265
Регистрация: 08.08.2014
Сообщений: 2,775
20.10.2025, 11:18
Цитата Сообщение от Wolfdp Посмотреть сообщение
Занятно, а почему у меня на 4.5 получилось?
А как именно? Мне, при попытке указать версию C# 4.5, компилятор выдаёт ошибку:
Invalid option '4.5' for /langversion. Use '/langversion:?' to list supported values.
0
2290 / 1606 / 400
Регистрация: 26.06.2017
Сообщений: 4,772
Записей в блоге: 1
20.10.2025, 11:31  [ТС]
Хмм, очень странно. После сборки приложения с захватом параметра последующее удаление захвата действительно не вызывает ошибки. Чудеса.

Добавлено через 4 минуты
Чётко помню, что IntelliSense не мог подсказать, когда набиралось имя параметра при вызове в MethodWithParameter, а сейчас он его подсказывает.

Добавлено через 4 минуты
Ладно, спишем на глюк компилятора. Решение в принципе есть, просто было не понятно почему так получается.
0
Эксперт .NET
 Аватар для Wolfdp
3790 / 1767 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
20.10.2025, 11:40

Не по теме:

То чувство когда пытаешься заставить код НЕ работать. ( ̄﹏ ̄;) Обычно задача стоит в обратном.... (╯▽╰ )



Цитата Сообщение от kotelok Посмотреть сообщение
А как именно?
создал проект WinForm .net 4.5 в VisualStudio 2022, кинул кнопку, добавил обработчик клика, скопировал код с форума и закинул в обработчик.
0
1341 / 920 / 265
Регистрация: 08.08.2014
Сообщений: 2,775
20.10.2025, 11:56
Цитата Сообщение от Wolfdp Посмотреть сообщение
создал проект WinForm .net 4.5
Я про версию C#, для .NETFW4.5 по умолчанию используется C# 7.3.
0
Эксперт .NET
 Аватар для Wolfdp
3790 / 1767 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
20.10.2025, 12:25
Цитата Сообщение от kotelok Посмотреть сообщение
Я про версию C#, для .NETFW4.5 по умолчанию используется C# 7.3.
я ничего не указывал, хз какая применяется. Но явно не последняя. Плюс async-await это не фича языка, а именно исполняемой среды.
0
1341 / 920 / 265
Регистрация: 08.08.2014
Сообщений: 2,775
20.10.2025, 12:33
Цитата Сообщение от Wolfdp Посмотреть сообщение
Плюс async-await это не фича языка, а именно исполняемой среды.
Почему? В языке это ведь тоже появилось только с определённой версии.

Вот, современный компилятор прямым текстом сообщает, что не может 'async' на C# 4.
Error
CS8025
Feature 'async function' is not available in C# 4. Please use language version 5 or greater.
C# version 5.0, released with Visual Studio 2012, was a focused version of the language. Nearly all of the effort for that version went into another groundbreaking language concept: the async and await model for asynchronous programming.
Добавлено через 1 минуту
Я к тому, что в более ранних версиях C# (и компиляторов), захват переменных для лямбд мог выполняться как-то иначе. Потому ровно тот же код, который сейчас ок, раньше мог работать иначе.
0
Эксперт .NET
 Аватар для Wolfdp
3790 / 1767 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
20.10.2025, 14:30
Цитата Сообщение от kotelok Посмотреть сообщение
Почему? В языке это ведь тоже появилось только с определённой версии.
Ну, я к тому что можно указать версию языка выше, но если это подразумевает не просто синтаксический сахар, а прям определённую технологию (в нашем случае асинхронность), то толку от указания langversion ноль.

Я выше описал что делал. Насколько вижу по wiki, 4.5 вышла в тот же год что и core 5. Я не шибко следил за всей этой историей, так что не подскажу вместе там внедрили async-await, или по отдельности.
0
62 / 187 / 31
Регистрация: 14.02.2013
Сообщений: 1,714
27.10.2025, 21:50
Цитата Сообщение от alecss131 Посмотреть сообщение
Асинхронность это не многопоточность.
Да Асинхронность это наверное как FreeRTOS в МК код выполняется кусками и приоритетно разделён по времени но всё на одном логическом ядре. А для многопоточности нужен мультиплексор какой то цифровой в многоядерных системах.
0
Эксперт JavaЭксперт по электроникеЭксперт .NET
 Аватар для wizard41
3453 / 2774 / 575
Регистрация: 04.09.2018
Сообщений: 8,725
Записей в блоге: 3
28.10.2025, 02:13
Цитата Сообщение от VladimirU Посмотреть сообщение
это наверное как FreeRTOS в МК
В данном случае вообще не как FreeRTOS, даже близко.
Цитата Сообщение от VladimirU Посмотреть сообщение
в многоядерных системах.
Трудно представить сейчас что у кого-то ПК одно-ядреный. Таких уже и не найти..
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.10.2025, 02:13

Софт для взаимодействия с разными интернет ресурсами обрабатывает не все данные
Здравствуйте. Пишу многопоточный софт, для взаимодействия с разными интернет ресурсами. ...

Софт, который будет обрабатывать капчи отсылая на антигейт или давая на вручной ввод
Здравствуйте. Пишу многопоточный софт, который будет обрабатывать капчи отсылая на антигейт или...

небольшой софт
Доброго времени суток ув. пользователи форума. Помогите пожалуйста, с чего начать? Хочу написать...

Какой софт нужен для работы с С# (на начальном уровне)
Добрый день, форумчане. Я - начинающий программист по С# Подскажите - какой софт нужен для...

Необходимо допилить софт для работы по разгадыванию капч
Доброго времени суток господа программисты. Мне нужна ваша помощь. Скажу сам я лично не программист...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
39
Ответ Создать тему
Новые блоги и статьи
Сукцессия 20. Война автоботов. Делаем ставки. Лёд против "пш-пш!".
anaschu 11.07.2026
Битва ИИ в ризосфере: Как мы скрестили жесткие ОДУ, закон Фика и «подземный шантаж» Уважаемые коллеги! Хочу поделиться уникальным опытом ведения междисциплинарной компьютерной разработки. Прямо. . .
Сукцессия 19. Какие выводы я сделал из модели? Часть 2.Внутримикоризный стехиометрический буфер и хроно-дискретные зоны экспансии
anaschu 11.07.2026
Био-Инженерный Ликбез: Архитектура Модели Ризосферы Математический аппарат моделирования
Сукцессия 18. Какие выводы я сделал из войны грибов с деревьями? Часть 1- рассказ и немного про термины
anaschu 11.07.2026
Био-Инженерный Ликбез: Архитектура Модели Ризосферы Математический аппарат моделирования Система ОДУ описывает динамику изменения массы различных компонентов системы во времени. Ключевой. . .
Просветление в 5 секунд
kumehtar 10.07.2026
Андрей Веретенников выдал фразу недавно: "Вам не обязательно кем-то себя считать"
Эксперимент с картинкой-обложкой на CodinGame
Adler 10.07.2026
Решил на днях провести эксперимент. У меня есть аккаунт на CodinGame, ТОП-3 по РФ среди 2200 участников (в разделе соревнования по программированию ИИ-ботов). Там есть обложка, куда можно влепить. . .
GitDOS: Когда я решил скрестить MS-DOS, GitHub и Claude
MaGz GoLd 08.07.2026
Привет, Киберфорум! Хочу поделиться своим проектом, который, надеюсь, вас заинтересует. GitDOS — это веб-приложение, которое позволяет запускать DOS в браузере с тремя крутыми фичами: диски живут в. . .
Учебный мини "цифровой двойник" = (Сервер = Java + Flask_питон )+(3D = Гугловскаая 4T nvideo + google colab) +( WMS = Odoo на Docker)
anaschu 07.07.2026
Увидел в требованиях к вакансии создателя имитационных моделей связку (REst + Api + WMS + Anylogic + питон + 3D Nvideo), и решил посмотреть, что это такое. Из этого всего я работал более менее. . .
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru