Виталий Пухов даже если так (1 поток на 1 клиента) - в большинстве реализаций сокетов, один сокет (прослушивающий) принимает коннекты, а при принятии создается новый сокет - который уже вполне можно отдать другому потоку на обслуживание, что и делается в серверах с многопоточной архитектурой (неважно, поток создается или берется из пула). Конечно, это все низкоуровневое решение и врядли оно вам необходимо, тем не менее стоит представлять как это работает в принципе).
@eucalipt
> Да и откуда он вообще узнает, что интерфейс для этого класса есть?
Если он пользуется конкретным языком и фреймворком - то очень полезно знать сущестующие договоренности в языке (например, IEnumerable в C#. Кто не знает что есть такой ифейс, не считается знающим язык) и фреймворке. Если работает с другими в коллективе - коллектив садится, решает и документирует, какие интерфейсы нужны, где будут лежать файлы с кодом определений этих ифейсов, и какие есть доп. договоренности, которые кодом не опишешь.
darkdiver готовое оттестированное решение - это key-value хранилище, коих достаточно на сегодняшний день (например redis.io). Вот как раз вам и будет выгрузка на жесткий диск. А если такая база данных для вас слишком тяжеловесно - то тогда уж лучше свою структуру заточить для своих задач, не такой уж тогда это велосипед.
Виталий Пухов а кстати, вам вообще почему пришла в голову мысль открывать много портов? То что много клиентов коннектятся на один порт это абсолютно стандартная ситуация, никакие порты раздавать не надо.
Neic под версию дотнета какую собираете? Если например у вас 2013 студия, то дотнет там будет по-дефолту 4.5.*, и, например, на XP он даже не встанет, а на семерке предустановленным только 3.5 идет
Tsiren Naimanov я понимаю, вот и ни к чему совершенно выносить показ формы в отдельный поток, показывайте в основном потоке. Если я правильно вас понял, у вас в текущий версии три потока: основной GUI, второй GUI где у вас About, и тертий для сохранения настроек (хотя вообще при чем он, непонятно :) ).
Гарантировано - только при исполнении кода на https://ru.wikipedia.org/wiki/%D0%9E%D0%BF%D0%B5%D... , вы должны понимать, что вы не на голом железе и довольно много времени ваш код просто "спит" - т.к. операционка регулярно снимает его с процессора и отдает время другим процессам. В вытесняющим многозадачности вам в принципе не добиться постоянного выполнения кода. А если примерно n секунд - заведите просто таймер, а точное, прошедшее с некоторого момента время отмеряйте вот этим: https://msdn.microsoft.com/en-us/library/system.di...
Роман я в общем-то и не спорю, что драйвер используется для захвата изображения, я говорю что те "сложности" взаимодействия с рабочим столом, о которых мы говорим, не такая уж большая проблема для коммерческого продукта вроде радмина (раз уж там дошли до написания драйверов! значит есть спецы и деньги), а вот для задавшего вопрос это не так просто будет. Ну т.е. возможно не обойдется без вызовов WinAPI, это уже в 10 раз сложнее, чем унаследоваться от класса, не каждый C# программер юзал в жизни P/Invoke. Или придется редактировать реестр. Ну и опять таки, я ж ссылку привел, там написано: Services cannot directly interact with a user as of Windows Vista. Т.е. грубо говоря гайки в Висте позакручивали, теперь нужны определенные воркэраунды. Вот на SO тоже народ обсуждает: serverfault.com/questions/576144/allow-service-to-...
там пишут, что в шестом билдере есть такой компонент - XPManifest, что, мол, кидаешь его на форму, и манифест добавится ресурсом в EXE. Попробуйте, поищите, билдера у меня нет уже лет 7-8, так что пробуйте сами.
Nik_Haker не обязательно внутрь, можно рядом положить. У вас исходники программы есть или только экзешник? Если есть - то надо разобраться, как добавить ресурс пользуясь вашей IDE, если только экзешник - то тогда проще в отдельный файл. Файл должен режать рядом с exe, и называться так: <имя_файла_с_расширением>.manifest , например ERwin.exe.manifest
Роман www.radmin.ru/products/radmin/rserver.php :
"Новая технология DireсtScreenTransfer™ с использованием нового драйвера видео-перехвата."
Предположу, что если уж продукт дорос до использования кода уровня ядра, то и многие другие сложности в нем уже решены, так что сранивать такое крупное решение с нашем случаем возможно не стоит.. И возможно там запускается какой-то дочерний процесс, радмином пользовался последний раз лет 7 назад, так что не могу судить.
Роман Я думаю заморочки все-таки есть, особенно с виндой старше XP (т.е. со всеми поддерживаемыми версиями): https://msdn.microsoft.com/en-us/library/windows/d... Так что видимо на сегодняший день нужно сразу делать сервис и панель управления по отдельности.