powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Прошу научить запускать таски на VB.NET
25 сообщений из 91, страница 2 из 4
Прошу научить запускать таски на VB.NET
    #39745213
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всё прочитал, на всё отвечу чуть позже.
...
Рейтинг: 0 / 0
Прошу научить запускать таски на VB.NET
    #39745215
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пока могу вот на это ответить:
WebPrjСтолько написали всего, а про запись в потоках промолчали.
У меня данные в SQL-сервере. И это у меня не первый случай, когда в него пишут разные треды, без всякой синхронизации между собой (например, из-под IIS). Никогда проблем не было, SQL-сервер все конфликты разруливает сам. В чем проблема в данном случае?
...
Рейтинг: 0 / 0
Прошу научить запускать таски на VB.NET
    #39745221
WebPrj
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владимир Саныч,
Класс над records в виде table не потокобезопасный.
И цикл фореч тоже.
Поэтому советовал перелить данные из базы в коллекцию.
...
Рейтинг: 0 / 0
Прошу научить запускать таски на VB.NET
    #39745354
Фотография Cat2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
WebPrjВладимир Саныч,
Класс над records в виде table не потокобезопасный.
И цикл фореч тоже.
Поэтому советовал перелить данные из базы в коллекцию.
Насколько я понял у Владимир Саныча в данной задаче нет конфликтов между потоками, так что потокобезопасность его не волнует.
...
Рейтинг: 0 / 0
Прошу научить запускать таски на VB.NET
    #39745368
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cat2,
Согласен. Всегда так. Если самому следить что второй поток не пойдет, то и синхронизация не нужна как класс.
А вот если строить индекс и так далее, то получим райзе.
Ему решать.
...
Рейтинг: 0 / 0
Прошу научить запускать таски на VB.NET
    #39745520
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123А вот если строить индекс и так далее, то получим райзе.
Слово райзе не понял, и про "строить индекс" тоже не понял. На всякий случай: добавления записей в таблицу у меня нет, есть проход по существующим и апдейт по одной.
...
Рейтинг: 0 / 0
Прошу научить запускать таски на VB.NET
    #39745526
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир СанычСлово райзе
видимо "raise exception"
...
Рейтинг: 0 / 0
Прошу научить запускать таски на VB.NET
    #39745536
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Саныч,
Ну, просто пробуйте.
У меня было райзе..... Недопустимая операция в нескольких потоках....
Я не знаю, насколько устойчивый код вы пишите.
...
Рейтинг: 0 / 0
Прошу научить запускать таски на VB.NET
    #39745540
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилВладимир СанычСлово райзе
видимо "raise exception"
Спасибо.

Я еще не на всё могу ответить, но пока что понял, что надо менять концепцию. В отдельный поток пойдет не обработка одной записи, а цикл, который идет по некоторой части записей (которая отбирается через where). Тогда я сам могу задавать количество потоков, бегущих параллельно.
...
Рейтинг: 0 / 0
Прошу научить запускать таски на VB.NET
    #39745554
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Саныч,
+1
Еще лучше будет при отдельном коннекте в поток.
Тогда будет изолированы через разные транзакции.
Но это если не переделка) проекта.
...
Рейтинг: 0 / 0
Прошу научить запускать таски на VB.NET
    #39745562
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Еще лучше будет при отдельном коннекте в поток.
Тогда будет изолированы через разные транзакции.
Но это если не переделка) проекта.
зачем?
...
Рейтинг: 0 / 0
Прошу научить запускать таски на VB.NET
    #39745563
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, коннекты тоже разделил. Сейчас проблема следующая: делаю цикл
For i = 0 To 4
и в нем как ни пишу - не удается сделать, чтобы каждый поток бежал со своим i (по которому фильтруются записи из таблицы для каждого потока). Цикл вроде проходит по i, а потом потоки начинают бежать и берут то значение i, которое оказалось уже после выхода из цикла. Код выглядит примерно так:

Код: vbnet
1.
2.
3.
4.
5.
        For i = 0 To 4
            Task.Factory.StartNew(Sub()
                                  ... i ...
                                  End Sub)
        Next


Пытался делать объекты, коллекции, но от этого только код усложняется, а решение не приходит.
...
Рейтинг: 0 / 0
Прошу научить запускать таски на VB.NET
    #39745571
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Саныч, https://habr.com/post/141270/
...
Рейтинг: 0 / 0
Прошу научить запускать таски на VB.NET
    #39745583
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Каждой записи поток
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
foreach (DataRow dr in ds.Tables["first"].Rows)
            {
                Task.Factory.StartNew(() =>
                {
                   strung s = await ОбработатьЗаписьПолностью(dr);
                   Console. WriteLine(s) 
                });
            }


Цикл внутрь потока
Код: sql
1.
2.
3.
4.
5.
6.
7.
 Task.Factory.StartNew(() =>
                {
                     foreach (DataRow dr in ds.Tables["first"].Rows)
                          ОбработатьЗаписьПолностью(dr);
                  
                });
            
...
Рейтинг: 0 / 0
Прошу научить запускать таски на VB.NET
    #39745584
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buserВладимир Саныч, https://habr.com/post/141270/
Спасибо, теперь я знаю, что это не баг, а фича.
...
Рейтинг: 0 / 0
Прошу научить запускать таски на VB.NET
    #39745585
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123Цикл внутрь потока
Цикл по записям у меня сейчас внутри потока.
...
Рейтинг: 0 / 0
Прошу научить запускать таски на VB.NET
    #39745587
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир СанычPetro123Цикл внутрь потока
Цикл по записям у меня сейчас внутри потока.ну, значит работает?
А как из одного сделать два или три цикла надо профи спросить.
То ли ридером с where date=....
То ли пропускать в цикле самом.
Имхо
...
Рейтинг: 0 / 0
Прошу научить запускать таски на VB.NET
    #39745591
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем, пока сделал без цикла, просто тупо размножил код 5 раз. Будет проблема, когда захочу сделать не 5.
...
Рейтинг: 0 / 0
Прошу научить запускать таски на VB.NET
    #39745596
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир СанычВ общем, пока сделал без цикла, просто тупо размножил код 5 раз. Будет проблема, когда захочу сделать не 5.ты замерь для интереса одним потоком и пятью. Есть разница?
Удачи!
...
Рейтинг: 0 / 0
Прошу научить запускать таски на VB.NET
    #39745601
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ты замерь для интереса одним потоком и пятью. Есть разница?
Как раз сейчас замерял. Пятью быстрее, чем одним, хотя и всего раза в 2-3. А вот десятью уже не быстрее, чем пятью.
...
Рейтинг: 0 / 0
Прошу научить запускать таски на VB.NET
    #39745619
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир СанычPetro123ты замерь для интереса одним потоком и пятью. Есть разница?
Как раз сейчас замерял. Пятью быстрее, чем одним, хотя и всего раза в 2-3. А вот десятью уже не быстрее, чем пятью.так и должно быть.
...
Рейтинг: 0 / 0
Прошу научить запускать таски на VB.NET
    #39745654
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда скорее всего так 5 и останется, и тогда не так уж нужен цикл. Но выглядит ужасно некрасиво...
...
Рейтинг: 0 / 0
Прошу научить запускать таски на VB.NET
    #39745658
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир СанычНо выглядит ужасно некрасиво...приведи код напишем красиво.
...
Рейтинг: 0 / 0
Прошу научить запускать таски на VB.NET
    #39745835
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сейчас это выглядит так:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
        Dim o As SomeRecords
        o = New SomeRecords("nCou % 5 = 0")
        tt.Add(Task.Factory.StartNew(Sub()
                                         o.RunAll()
                                     End Sub))
        o = New SomeRecords("nCou % 5 = 1")
        tt.Add(Task.Factory.StartNew(Sub()
                                         o.RunAll()
                                     End Sub))
        o = New SomeRecords("nCou % 5 = 2")
        tt.Add(Task.Factory.StartNew(Sub()
                                         o.RunAll()
                                     End Sub))
        o = New SomeRecords("nCou % 5 = 3")
        tt.Add(Task.Factory.StartNew(Sub()
                                         o.RunAll()
                                     End Sub))
        o = New SomeRecords("nCou % 5 = 4")
        tt.Add(Task.Factory.StartNew(Sub()
                                         o.RunAll()
                                     End Sub))
...
Рейтинг: 0 / 0
Прошу научить запускать таски на VB.NET
    #39745842
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Забыл строчку:
Код: vbnet
1.
Dim tt As New List(Of Task)
...
Рейтинг: 0 / 0
25 сообщений из 91, страница 2 из 4
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Прошу научить запускать таски на VB.NET
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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