- Регистрация
- 05.06.2019
- Сообщения
- 570
- Благодарностей
- 454
- Баллы
- 63
Доброго времени! Необходимо понимание, чтобы развеять невежество...
П.С. Я только учусь, нашел код в интернете, хочу разобраться с тем, как грамотно и лаконично писать код.
Интересует больше состояние памяти между потоками в одном процессе (синоним база), ниже приведу пару примеров кода..
Задача:
Добавить на сайт 100 публикаций
Вступление:
Перед запуском шаблона
Настройки ZennoPoster, вкладка "Потоки":
Настраивая шаблон перед запуском, значения:
Ок, алгоритм программы:
Есть файл дб, в котором 1-ая строка: Заголовки, последующие строки: Значения
Шаблон не зациклен, у него есть точка входа и выхода и полный проход это 1 выполнение.
Вариант №1
Вариант №2
Вопрос:
из Вариант №1
Нужно ли, делать проверку списка C#, перед тем, чтобы его связать с файлом?
В базе 4 потока, но для каждого создается отдельный список?
Если я правильно понимаю, то нет смысла делать данную проверку, а сразу можно привязать файл к List<string> и содержимое между потоками не будет перемешиваться?
из Вариант №2
Тот же самый вопрос, разница лишь в реализации кода в "Общем коде", если ли смысл проверять инициализирован ли список (типо, что в нем может хранятся "данные" от другого потока?)
На заметку:
База (изолированное пространство) - ? оператор контролирующий процесс работы потоков? то есть если поток где-то потерялся (завис в бесконечном цикле), база может принудительно завершить его, есть возможность с ней общаться в реалтайм?
Пример: состояние потоков (% выполнения от 100% задачи), сколько времени работает 1 поток, отрубить поток? Получить скрин браузера?
П.С. Я только учусь, нашел код в интернете, хочу разобраться с тем, как грамотно и лаконично писать код.
Интересует больше состояние памяти между потоками в одном процессе (синоним база), ниже приведу пару примеров кода..
Задача:
Добавить на сайт 100 публикаций
Вступление:
Перед запуском шаблона
Настройки ZennoPoster, вкладка "Потоки":
- Максимальное кол-во потоков: 40
- Кол-во потоков в одном процессе: 4
Настраивая шаблон перед запуском, значения:
- Сколько сделать: 100
- Максимум потоков: 10
Ок, алгоритм программы:
Есть файл дб, в котором 1-ая строка: Заголовки, последующие строки: Значения
Шаблон не зациклен, у него есть точка входа и выхода и полный проход это 1 выполнение.
Вариант №1
Свой C# код:
string pathFile = project.Directory + @"\db.csv";
List<string> file = new List<string>(); //File.ReadAllLines(pathFile).ToList();
List<string> header = new List<string>();
int lineNumber = 1;
if(file.Count == 0)
{
file = File.ReadAllLines(pathFile).ToList();
header = file[0].Split(';').ToList();
}
C#:
class Program
{
static List<string> file;
static List<string> header;
void SetValue()
{
string pathFile = project.Directory + @"\db.csv";
//код...
lock(lockFile)
{
if(file == null)
{
file = File.ReadAllLines(pathFile).ToList();
header = file[0].Split(';').ToList();
}
//код...
из Вариант №1
Нужно ли, делать проверку списка C#, перед тем, чтобы его связать с файлом?
Проверка списка:
if(file.Count == 0)
Если я правильно понимаю, то нет смысла делать данную проверку, а сразу можно привязать файл к List<string> и содержимое между потоками не будет перемешиваться?
из Вариант №2
Тот же самый вопрос, разница лишь в реализации кода в "Общем коде", если ли смысл проверять инициализирован ли список (типо, что в нем может хранятся "данные" от другого потока?)
C#:
if(file == null)
База (изолированное пространство) - ? оператор контролирующий процесс работы потоков? то есть если поток где-то потерялся (завис в бесконечном цикле), база может принудительно завершить его, есть возможность с ней общаться в реалтайм?
Пример: состояние потоков (% выполнения от 100% задачи), сколько времени работает 1 поток, отрубить поток? Получить скрин браузера?