
Лёша
17.02.2017
08:41:03
Открываю проект и закрываю

Сергей
17.02.2017
08:41:31

Лёша
17.02.2017
08:41:33

Владимир
17.02.2017
08:41:43

Google

ad_art
17.02.2017
08:41:46

Timur
17.02.2017
08:41:59

User
17.02.2017
08:42:04

Лёша
17.02.2017
08:42:28

Летучая
17.02.2017
08:42:48
главное чтоб потом откачивать не пришлось

Сергей
17.02.2017
08:42:55

Timur
17.02.2017
08:42:58

Лёша
17.02.2017
08:43:03
Хочу создать среду, в которой бы работали другие люди, данные забивались, а я бы мастурьировал от удовольствия

User
17.02.2017
08:43:06
Работая с бизнесом напрямую ты тоже будешь видеть результат причем на лицах конкретных людей
Ты улучшаешь жизнь не абстрактного пользователя, а вполне конкретного человека/группы лиц
Плюс фидбек тебе напрямую обеспечен, причем без всяких нежностей и компромисов
)))

Artem
17.02.2017
08:46:12
Может кто знает, нужно проверять номер на доступность. Есть готовые решения? (ну кроме как самому настроить asterisk и т.п.)

Google

Ilya
17.02.2017
09:05:49

Alex
17.02.2017
09:09:01
http://stackoverflow.com/questions/42293703/multiple-independent-locks-on-several-objects поможите люди добри

Сергей
17.02.2017
09:11:07
Странный вопрос...
Есть Mutex но вопрос все равно странный

Владимир
17.02.2017
09:12:27

Alex
17.02.2017
09:15:20
если я правильно понимаю, ни mutex, ни semaphore мyе не нужны: http://stackoverflow.com/questions/2332765/lock-mutex-semaphore-whats-the-difference
нужен просто массив локов

Сергей
17.02.2017
09:16:18
а

Владимир
17.02.2017
09:16:22
Можно лочить прям директори инфо объекты.
Если они у тебя где-то хранятся вне пользовательских сессий

Alex
17.02.2017
09:16:55
причём без очередей, кто влез в залоченую – слать с соответствующим сообщением

Владимир
17.02.2017
09:17:45
Лок не может чекать сам по себе

Artem
17.02.2017
09:18:23

Владимир
17.02.2017
09:18:49
Придется заводить какой-нибудь флаг и делать дабл лок, либо таки использовать семафор

Alex
17.02.2017
09:19:34
да, я помню, спасибо) что-то у меня пока там не вышло
лан, пока ещё покопаюсь, всем спасибо

Artem
17.02.2017
09:24:46
public class TestController : ControllerBase
{
public ActionResult Get(string folder)
{
var fullPath = HostingEnvironment.MapPath(folder);
using (new Mutex(true, fullPath))
{
//do stuff
}
return View();
}
}
вот вариант с мьютексом

Alex
17.02.2017
09:27:19
то есть, если folder в запросах будет разная, то Get смогут выполнить одновременно сколько угодно людей?

Google

Artem
17.02.2017
09:27:47
вот вариант со ConcurrentDictionary
public class TestController : ControllerBase
{
public static readonly ConcurrentDictionary<string, object> Locks = new ConcurrentDictionary<string, object>();
public ActionResult Get(string folder)
{
var fullPath = HostingEnvironment.MapPath(folder);
var lockObject = Locks.GetOrAdd(fullPath, new object());
lock (lockObject)
{
//do stuff
}
return View();
}
}

Alex
17.02.2017
09:29:02
то, что надо

Artem
17.02.2017
09:31:23
вот ктстаи вопрос на собеседование
public ActionResult Get(string folder)
{
int syncRoot = 0;
lock (syncRoot)
{
//do stuff
}
return View();
}
что не так?

Сергей
17.02.2017
09:31:52
Что не так? Боксинг и лок на нем?

Владимир
17.02.2017
09:31:56
синк рут каждый раз новый
бесполезный лок

Artem
17.02.2017
09:32:28
ну проблема в том, что это не скомпилируется
это раз

Aleksey
17.02.2017
09:32:59
lock object принимает только ?

Artem
17.02.2017
09:33:31

Сергей
17.02.2017
09:34:27
Да потому что у вэлб. типов нет синкблока

Artem
17.02.2017
09:34:35
например, если следать так:
public class TestController : ControllerBase
{
public static int syncRoot = 0;
public ActionResult Get(string folder)
{
lock ((object)syncRoot)
{
//do stuff
}
return View();
}
}
вудет ок?

Сергей
17.02.2017
09:35:06
нет не будет

Aleksey
17.02.2017
09:35:30

Artem
17.02.2017
09:36:07
правильный ответ - нет, не будет
но скомпилируется

Сергей
17.02.2017
09:36:33
??

Artem
17.02.2017
09:36:56
Только вот лок стал бесполезным. Вопрос почему?

Alex
17.02.2017
09:38:11
потому что объект новый каждый раз будет создаваться?

Google

Artem
17.02.2017
09:38:50

Alex
17.02.2017
09:39:28
нет смысла лочить получается

Владимир
17.02.2017
09:39:51
?object)syncRoot
вот это выглядит слишком костыльно, раз нельзя инт локать по умолчанию, значит не стоит этого делать

Alex
17.02.2017
09:40:19
?

Aleksey
17.02.2017
09:40:26
да почему, компилируется же :)
упакованный инт получается, чем тебе не объект

Artem
17.02.2017
09:40:56

Сергей
17.02.2017
09:41:45
Это скучно, и слшком очевидно с локом, попробуйте вот это разгадать https://pbs.twimg.com/media/CeN8-sSWAAA_Ze5?format=jpg&name=large

Владимир
17.02.2017
09:41:45

Vyacheslav
17.02.2017
09:42:32

Admin
ERROR: S client not available

Igor
17.02.2017
09:43:38

Сергей
17.02.2017
09:44:02
Я про окно locals

Artem
17.02.2017
09:44:10
если говорить проще - лок делается на адрес в памяти. Упаковываая каждый раз ты присваиваешь каждый раз новый адрес

Aleksey
17.02.2017
09:44:31
на память
почаще такие вопросы в чат кидай :)

Сергей
17.02.2017
09:45:04

Igor
17.02.2017
09:45:22

Сергей
17.02.2017
09:45:39

Google

Сергей
17.02.2017
09:45:55
Вопрос в том как добиться того этого

Aleksey
17.02.2017
09:45:59
там дело в том что this указывает на непонятно что

Axm
17.02.2017
09:46:00
пакет json.net? короче в любом случае десериализуй в готовый тип. чтобы подготовить просто, скопипасть в студию json через edit - paste special - json as classes.

Vyacheslav
17.02.2017
09:46:45

Axm
17.02.2017
09:47:01
public class Dog
{
public string Name { get; set; }
}
var json = @"{ ""name"" : ""Spot"" }";
var spot = JsonParser.Deserialize<Dog?json);
Console.WriteLine(spot.Name)
вот у них в примере
JsonParser.Deserialize<Dog?json);

Vyacheslav
17.02.2017
09:48:03
это я видел, у меня структура сложная
и он не хочет искать
null постоянно возвращает

Axm
17.02.2017
09:48:38
у меня гораздо сложнее и все хорошо работает.
что искать-то?

Alexander
17.02.2017
09:48:55

Axm
17.02.2017
09:49:00
может структура твоя не соответствует json и он ее не может десереализовать

Vyacheslav
17.02.2017
09:49:22
http://json2csharp.com/ вот сюда пихал свой json
потом класс сделал

Igor
17.02.2017
09:49:40

Сергей
17.02.2017
09:49:47

Alexander
17.02.2017
09:50:16

Axm
17.02.2017
09:50:56
покажи json

Сергей
17.02.2017
09:51:15
ну да рефлекшен
но без emit и unsafe

Vyacheslav
17.02.2017
09:53:32
Эта группа больше не существует