Как можно использовать каналы для такой задачи вместо Reactive:
приложение, каком-то (нескольких) местах изменяются настройки приложения, нужно, чтобы активные формы перечитали конфиг и отреагировали на изменения.
Один писатель и читатели в разных местах, где надо реагировать? но если канал один, то первый же читатель вычитает сообщение и другие не смогут.
Спасибо, понял, в чем ошибка.
Я хочу приспособить канал в приложении, которое читает данные из файловой системы (список файлов, фолдеров, может быть много), по ходу чтения в цикле проверяет существует ли файл, его размер и пишет в базу.
Хочу сделать так: приложение не пишет сразу в базу по одной записи на файл, а пишет в канал, на другом конце читатель вычитывает и пишет в базу.
Я понимаю, что где-то мой пробой, но хотелось бы выяснить для себя:
Вот мои писатель и читатель в разных формах, где закрытие и как избежать?
//========================
public async Task ChannelRunWriter(int delayMs, int numberOfReaders,
int howManyMessages = 10, int maxCapacity = 10)
{
_channel = Channel.CreateBounded<string>(maxCapacity);
var writer = _channel.Writer;
for (int i = 0; i < howManyMessages; i++)
{
Console.WriteLine($"2)Writing at {DateTime.Now.ToLongTimeString()}");
await writer.WriteAsync($"[2]SomeText message '{i}");
}
writer.Complete();
}
//============================
public static async Task ChannelRunReader(int delayMs, int numberOfReaders,
int howManyMessages = 100, int maxCapacity = 10)
{
var finalDelayMs = 25;
var finalNumberOfReaders = 1;
var reader = channel.Reader;
async Task Read(ChannelReader<string> theReader, int readerNumber)
{
while (await theReader.WaitToReadAsync())
{
while (theReader.TryRead(out var theMessage))
{
Console.WriteLine($"*** Reader {readerNumber} read '{theMessage}' at {DateTime.Now.ToLongTimeString()}");
await Task.Delay(delayMs);
}
}
}
var tasks = new List<Task>();
for (int i = 0; i < finalNumberOfReaders; i++)
{
tasks.Add(Task.Run(() => Read(reader, i + 1)));
await Task.Delay(10);
}
await reader.Completion;
await Task.WhenAll(tasks);
}
Спасибо, интересно, хоть и, как выясняется — не совсем ново. Еще в 2018 году были анонсы.
Вопрос по теме: сделал тестовое приложение на винформс, в форме1: создается канал, стартует читатель и ждет данных, открывается форма2(параметр — созданный канал), открывается писатель и начинает писать, читатель получает, вычитывает все данные, выходит из функции.
Но, когда я при открытых формах пытаюсь повторно начать писать в тот же канал — получаю ошибку, что канал закрыт. Как быть в таком случае, когда через паузу снова появились данные для записи? Создавать новый канал?
Пытаюсь повторить как написано, стартонул докер, подключил TightVNC, вроде показывает, но только черный экран. Right-click menu показывает пункты, но экран черный.
Что я сделал не так?
Кто-то понял как сделать триггер на открытие фолдера кем-то?
Подскажите, как сделать так: хотел бы получать уведомления, елси кто-то удаленно в локальной сети открывает фолдер на моей машине? файл пдф?
Работу с языком обсуждаем
1. «Отличный вопрос вы спрашиваете!»->«Отличный вопрос вы задаете! „
2. “Т.е. это не вариация word2vec от слова совсем.» — т.е. нельзя было написать без банального тупого оборота, эдак завернуто… тогда уж «от слова 'совсем'».
Интересная статья. Было бы хорошо упорядочить термины, а то как-то «делать эмбеддинги таких пары близкими», «машинерия сиамских сетей»…
Подскажите, где почитать про сиамские сети — определение, применение?
Я хочу сравнивать текстовые поля в базе данных, т.е. найти похожие, очень, не очень и т.д.Что можно применить?
Ок, туча, так туча.
Хорошо, амазоны заявляют, что один запрос может содержать гетерогенный запрос, т.е. к разным источникам данных. На их тестовых файлах я посмотрел, ну, да, загрузил файл с данными, сделал запрос, работает.
Но я вот торможу: как в PartiQL запросе распознать к каким источниками данных идут запросы, если это реально к разным серверам баз, например?
Как загрузить файли с данными понятно, но куда и как указывать серверы баз?
«Все боятся за конфиденциальность данных»
Я бы так сказал: за конфиденциальность бояться не надо, как раз наоборот — за отсутствие конфиденциальности — надо.
«Существует проблеме недоверия» — видимо, прочитав такое рассогласованное предложение, насторожились и стали недоверчивыми :-)
приложение, каком-то (нескольких) местах изменяются настройки приложения, нужно, чтобы активные формы перечитали конфиг и отреагировали на изменения.
Один писатель и читатели в разных местах, где надо реагировать? но если канал один, то первый же читатель вычитает сообщение и другие не смогут.
Я хочу приспособить канал в приложении, которое читает данные из файловой системы (список файлов, фолдеров, может быть много), по ходу чтения в цикле проверяет существует ли файл, его размер и пишет в базу.
Хочу сделать так: приложение не пишет сразу в базу по одной записи на файл, а пишет в канал, на другом конце читатель вычитывает и пишет в базу.
Вот мои писатель и читатель в разных формах, где закрытие и как избежать?
Вопрос по теме: сделал тестовое приложение на винформс, в форме1: создается канал, стартует читатель и ждет данных, открывается форма2(параметр — созданный канал), открывается писатель и начинает писать, читатель получает, вычитывает все данные, выходит из функции.
Но, когда я при открытых формах пытаюсь повторно начать писать в тот же канал — получаю ошибку, что канал закрыт. Как быть в таком случае, когда через паузу снова появились данные для записи? Создавать новый канал?
FAQ
Defaul root
И в комментах к файлам:
add support reolution from paramter,
Как сделать так, чтобы докер строился уже с выбранной темой?
Пуск > Preferences > Appearance >
не нахожу.
На черном экране могу по правой клавише выбрать только Desktop Preferences.
Что я сделал не так?
Подскажите, как сделать так: хотел бы получать уведомления, елси кто-то удаленно в локальной сети открывает фолдер на моей машине? файл пдф?
1. «Отличный вопрос вы спрашиваете!»->«Отличный вопрос вы задаете! „
2. “Т.е. это не вариация word2vec от слова совсем.» — т.е. нельзя было написать без банального тупого оборота, эдак завернуто… тогда уж «от слова 'совсем'».
Тренировочные данные из базы — это реально полезно.
Подскажите, где почитать про сиамские сети — определение, применение?
Я хочу сравнивать текстовые поля в базе данных, т.е. найти похожие, очень, не очень и т.д.Что можно применить?
Ждем
Я, кстати, задал вопрос и в их форуме, ответов пока(?) нет:
community.partiql.org/t/how-to-recognize-different-data-sources-in-a-query/47
Там есть тоже логичный вопрос по стандарту SQL:
Why only being compatible to SQL:92 and not at least to SQL:2016?
community.partiql.org/t/why-only-being-compatible-to-sql-92-and-not-at-least-to-sql-2016/45/2
Хорошо, амазоны заявляют, что один запрос может содержать гетерогенный запрос, т.е. к разным источникам данных. На их тестовых файлах я посмотрел, ну, да, загрузил файл с данными, сделал запрос, работает.
Но я вот торможу: как в PartiQL запросе распознать к каким источниками данных идут запросы, если это реально к разным серверам баз, например?
Как загрузить файли с данными понятно, но куда и как указывать серверы баз?