|
4 / 4 / 1
Регистрация: 15.03.2019
Сообщений: 676
|
||||||||||||||||
Как заставить ожидать выполнения метода13.09.2021, 15:43. Показов 1511. Ответов 14
Метки нет (Все метки)
Доброго дня!
есть метод который следит за изменением файлов в каталоге
но метод fsw_Changed должен ожидать пока не вышлет предыдущий файл и затем только высылать другой как это реализовать? Добавлено через 2 минуты я пробовал создавать новый экземпляр класса но и тут он получается в разных потоках начинает коннектится к клиенту и все приложение отваливается смысл таков как должно быть метод fsw_Changed как я понимаю асинхронный верно? как только изменяется файлы в директории он выполняется в новом потоке так? следовательно мне необходимо что бы он пока tt.Starts_(e1) не вернул истину должен ожидать и только когда tt.Starts_(e1) = итине тогда посылать следующий файл
0
|
||||||||||||||||
| 13.09.2021, 15:43 | |
|
Ответы с готовыми решениями:
14
Как заставить ожидать пока WebBrowser1.DocumentText будет равен HTML_DOC |
|
4 / 4 / 1
Регистрация: 15.03.2019
Сообщений: 676
|
||
| 13.09.2021, 15:49 [ТС] | ||
|
я имею в виду пока отправляется файл мне нужно что бы он как бы запоминал другие измененные файлы и только после того как отправил отсылал накопленные
0
|
||
|
|
|
| 13.09.2021, 15:52 | |
|
Sanya2019, я делал так:
fsw.Changed фиксирует файлы, записывая их в некий List. Другая функция отправляет из этого листа в сеть, пока он не закончится. Т.е. сам fsw.Changed тут не принимает участия, а делает свою работу.
0
|
|
|
4 / 4 / 1
Регистрация: 15.03.2019
Сообщений: 676
|
||
| 13.09.2021, 16:12 [ТС] | ||
|
я установил в ложь EnableRaisingEvents перед тем ка котправить затем отправил файл и выставил сново EnableRaisingEvents в истину но на момент отправки файла скопировал в каталог еще порцию файлов и в итоге после не получил вообще ничего
0
|
||
|
|
||
| 13.09.2021, 16:17 | ||
|
fsw.Changed() пусть работает всегда, собирая файлы в список. Функция, отвечающая за отправку проверяет этот список, и если он не пустой - отправляет из него в сеть.
0
|
||
|
4 / 4 / 1
Регистрация: 15.03.2019
Сообщений: 676
|
|
| 13.09.2021, 16:23 [ТС] | |
|
кажется допер
Вы имеете в виду static List<String> named { get; set; } далее в fsw.Changed() добавляю в него данные а в каждые nn секунд проверяю этот List и если в нем етсь что тогда отправляю и при удачном исходе удаляю отправленную запись так?
0
|
|
|
|
||
| 13.09.2021, 16:25 | ||
|
0
|
||
|
4 / 4 / 1
Регистрация: 15.03.2019
Сообщений: 676
|
|||||||||||
| 13.09.2021, 16:54 [ТС] | |||||||||||
|
что то морожу уже(
помогите создать этот лист ( Добавлено через 2 минуты я объявил
System.NullReferenceException: "Ссылка на объект не указывает на экземпляр объекта." WidgetNS.ServersList.Nameds.get вернул null.
0
|
|||||||||||
|
13 / 10 / 5
Регистрация: 22.03.2021
Сообщений: 50
|
||||||||||||||
| 13.09.2021, 21:50 | ||||||||||||||
|
Можно ли этот код как-то сократить? watcher.Created += AddToList; watcher.Deleted += AddToList; watcher.Changed += AddToList; watcher.Error += Watcher_Error; watcher.Renamed += AddToList; watcher.Disposed += Watcher_Disposed; А ошибка с List у него в том что он берет List<string> а надо List<EventArgs> Добавлено через 35 минут Как было выше сказано, метод fsw_Changed нужно заменить примерно на:
1
|
||||||||||||||
|
|
||||||
| 14.09.2021, 09:32 | ||||||
2
|
||||||
|
4 / 4 / 1
Регистрация: 15.03.2019
Сообщений: 676
|
|
| 15.09.2021, 09:06 [ТС] | |
|
Все получилось!
пришлось правда сохронять в Sqlite данные по изменениям так как при выходе с сервера виртуальный канал закрывается и следовательно если клиент не вернул "ок" значит текущий файл небыл передан а значит необходимо допонительно после следующего подключения отправить его и только после того как клиент вернет подтверждение о том что съел файл только тогда стираю из бд запись тепреь вот пишу то же и на клиенте так как обмен то должен быть двухсторонним )
0
|
|
|
13 / 10 / 5
Регистрация: 22.03.2021
Сообщений: 50
|
|
| 15.09.2021, 20:20 | |
|
1
|
|
|
4 / 4 / 1
Регистрация: 15.03.2019
Сообщений: 676
|
|||||||
| 16.09.2021, 10:41 [ТС] | |||||||
|
Добавлено через 44 секунды с другой стороны а вдруг нет ушел гулять? комп выключился и т д полюбому надо как то мониторить факт передачи Добавлено через 20 минут Хотя,,. возможно Вы мне поможете Общение по виртуальному каналу я брал из примера вот код который с сервера отправляет данные возможно ли переписать этот код на отправку не строки а байтов?
В общем вышло у меня все же упаковать данные и отправить но и тут проблема клиентская часть принимает только строку и хоть убей ( короче надо подумать буду пока все же пистаь на строке а потом уже придумаю
0
|
|||||||
| 16.09.2021, 10:41 | |
|
Помогаю со студенческими работами здесь
15
Программа "Торпедная атака": Как заставить программу всё время цикла "Корабль" ожидать нажатия клавиши Как заставить Builder 6 показывать результат выполнения программы? Как заставить макрос после выполнения переходить на следующую ячейку
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога
Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
|
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога
Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|