Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.11.2016, 12:17   #41
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

если бы быть был верен ошибки бы не было.
а неверен путь что вы передаете StreamReader'у.
Цитата:
он склеивает файлы, и должен показывать на экране результат result
если он должен делать это, то там streamReader вообще не причем.
я говорю вам вновь, решите задачу без потоков, чтоб был чистый код, без мусора.

у вас склеивает строки один код, потом эти строки идут куда-то в сторону.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 03.11.2016, 12:28   #42
komra2
Новичок
Джуниор
 
Регистрация: 10.04.2015
Сообщений: 733
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
у вас склеивает строки один код, потом эти строки идут куда-то в сторону.
...потом эти строки надо перебрать несколькими потоками, ну не писать же мне тысячи потоков, и в каждом потоке отдельный интервал, мне надо ну 4 потока хватит, прописал постепенно интервалы на каждый поток, после чего, сново прописал еще один круг интервалов для потоков, потом еще и еще, пока не закончит перебор весь, все
komra2 вне форума Ответить с цитированием
Старый 03.11.2016, 12:40   #43
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Сообщение от komra2 Посмотреть сообщение
...потом эти строки надо перебрать несколькими потоками, ну не писать же мне тысячи потоков, и в каждом потоке отдельный интервал, мне надо ну 4 потока хватит, прописал постепенно интервалы на каждый поток, после чего, сново прописал еще один круг интервалов для потоков, потом еще и еще, пока не закончит перебор весь, все
только вот в коде у вас нет и близко того что вы говорите.

1)у вас уже есть IEnumerable для сложения строк.
2)зачем вы вообще стремитесь именно к интервалам? зачем лишнее группирование?

я вам повторю, сделайте уже в один поток.
вы этого не можете...о многопоточности говорить вообще рано.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 03.11.2016, 13:09   #44
komra2
Новичок
Джуниор
 
Регистрация: 10.04.2015
Сообщений: 733
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
2)зачем вы вообще стремитесь именно к интервалам? зачем лишнее группирование?

я вам повторю, сделайте уже в один поток.
один поток и более я сделать могу, проблем нет. Зачем тремлюсь...ну мне надо...

если интервалы можно прописать в один поток, то это даже лучше, как мне прописать интервалы, я хз
komra2 вне форума Ответить с цитированием
Старый 03.11.2016, 13:14   #45
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,065
По умолчанию

Вот склейка файлов:
Код:
var result =
            (from f in File.ReadLines(@"C:\Users\LowFrequencySound\Desktop\1.txt") select f)
.Union((from f in File.ReadLines(@"C:\Users\LowFrequencySound\Desktop\2.txt") select f)
.Union((from f in File.ReadLines(@"C:\Users\LowFrequencySound\Desktop\3.txt") select f)
.Union((from f in File.ReadLines(@"C:\Users\LowFrequencySound\Desktop\4.txt") select f)
.Union((from f in File.ReadLines(@"C:\Users\LowFrequencySound\Desktop\5.txt") select f)
.Union((from f in File.ReadLines(@"C:\Users\LowFrequencySound\Desktop\6.txt") select f);
в result будет набор строк из всех файлов. Делайте дальше с ними что хотите и как хотите. Вот перебор строк:
Код:
foreach (var str in result)
{
  ...
}
pu4koff вне форума Ответить с цитированием
Старый 03.11.2016, 13:19   #46
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

учитывая код что я вижу выше, я не верю в то что вы можете сделать в один поток.(да и не видел я это)
без обид, но когда я вижу на протяжении более полугода, один и тот же уровень, это не хорошо. причем уровень этот 99% копипаста, 1% я тут что-то поменял.

повторюсь, вы уверены что вам нужно это группирование? оно не имеет смысла просто так.
я вам сагу про X,Y,Z не просто так скинул.
если вам надо просто многопоточно сделать некие действия со строками, это одно.
но если группировка именно нужна, это немного иное.

есть ли причины группировки кроме как "я хочу"?

группировка все же применяется в нескольких случаях
1)группировка по ключу.(не ваш случай)
ну и частный случай группировки, объединение в блоки.
2)когда элементы имеют смысл только когда они блоком.(например формат файла блочный)
3)когда данные поступают блоком(например массив байт).
иные случаи обычно проще линейно разобрать.
Цитата:
Вот склейка файлов:
да ему похоже горизонтальная склейка нужна, а не вертикальная.

хотя да, ТС, а какая нужна то?
ибо для равномерной горизонтальной файлы должны иметь одинаковое количество строк.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.

Последний раз редактировалось Пепел Феникса; 03.11.2016 в 13:25.
Пепел Феникса вне форума Ответить с цитированием
Старый 03.11.2016, 13:31   #47
komra2
Новичок
Джуниор
 
Регистрация: 10.04.2015
Сообщений: 733
По умолчанию

Цитата:
Сообщение от pu4koff Посмотреть сообщение
Вот склейка файлов:
Код:
var result =
            (from f in File.ReadLines(@"C:\Users\LowFrequencySound\Desktop\1.txt") select f)
.Union((from f in File.ReadLines(@"C:\Users\LowFrequencySound\Desktop\2.txt") select f)
.Union((from f in File.ReadLines(@"C:\Users\LowFrequencySound\Desktop\3.txt") select f)
.Union((from f in File.ReadLines(@"C:\Users\LowFrequencySound\Desktop\4.txt") select f)
.Union((from f in File.ReadLines(@"C:\Users\LowFrequencySound\Desktop\5.txt") select f)
.Union((from f in File.ReadLines(@"C:\Users\LowFrequencySound\Desktop\6.txt") select f);
в result будет набор строк из всех файлов. Делайте дальше с ними что хотите и как хотите. Вот перебор строк:
Код:
foreach (var str in result)
{
  ...
}
как мне интервалы прописать в нескольких потоках, самая малость надо
komra2 вне форума Ответить с цитированием
Старый 03.11.2016, 13:38   #48
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

вам же уже дали код, у него лишь источник строк иной.
прочитайте его да переделайте.

или мы так и будем за вас код писать?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 03.11.2016, 13:41   #49
komra2
Новичок
Джуниор
 
Регистрация: 10.04.2015
Сообщений: 733
По умолчанию

вот сделал пример чтобы было понятнее
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {
            Thread th1 = new Thread(thread1);
            th1.Start();
            Thread th2 = new Thread(thread2);
            th2.Start();
            Thread th3 = new Thread(thread3);
            th3.Start();
            Thread th4 = new Thread(thread4);
            th4.Start();
        }
        static void thread1()
        {
            //тут интервал первый от и до,
            //простой перебор строк от aa-ac(как пример)
            //тут интервал второй от и до,
            //простой перебор строк от ao-ar(как пример)
            //итд
            //алфавит сам пропишу
        }
        static void thread2()
        {
            //тут интервал первый от и до
            //простой перебор строк от ad-af(как пример)
            //тут интервал второй от и до,
            //простой перебор строк от ar-at(как пример)
            //итд
        }
        static void thread3()
        {
            //тут интервал первый от и до
            //простой перебор строк от af-ak(как пример)
            //тут интервал второй от и до,
            //простой перебор строк от at-au(как пример)
            //итд
        }
        static void thread4()
        {
            //тут интервал первый от и до
            //простой перебор строк от ak-an(как пример)
            //тут интервал второй от и до,
            //простой перебор строк от au-az(как пример)
            //итд
        }
    }
}
komra2 вне форума Ответить с цитированием
Старый 03.11.2016, 13:43   #50
komra2
Новичок
Джуниор
 
Регистрация: 10.04.2015
Сообщений: 733
По умолчанию

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

или мы так и будем за вас код писать?
за меня не надо, мне надо только интервалы написать как делать, остальное я сам могу,
komra2 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Многопоточный curl nibufep PHP 2 05.04.2015 19:46
Режимы компиляции Многопоточный MT и Многопоточный DLL vasiatka Общие вопросы C/C++ 5 20.02.2014 19:56
c#. Многопоточный сервер tiger Помощь студентам 1 13.09.2012 13:24
многопоточный сервер мандарин Работа с сетью в Delphi 6 24.04.2007 07:22
Многопоточный Ping Квэнди Работа с сетью в Delphi 0 18.12.2006 15:01