Приложение работещо на background-a c#


3
Здравейте,
Имам една winform и искам като я пусна да започне да ми работи на background-a. Нещо катo DropBox или uTorrent. Ако някои го е пробвал моля да сподели.
Поздрави! :)

в C# OOP от Encho Belezirev (0 точки)


Отговори



0
Ами както всеки един контрол и самата форма има пропърти Visible (bool).
А ако искаш иконка в трея имаш такъв контрол също, има го в toolbox-а. tray-нещо си.

Ако искаш да става автоматично при пускането на програмата май имаше някакъв проблем, че не можеш да скриеш форма преди да си я направил или нещо такова, не си спомням добре, беше преди много време... за да го избегнеш това просто си раздели кода така, че формата да управлява приложението но приложението да не зависи от формата, и просто си я инициализирай когато ти потрябва. Тогава пък ще имаш проблем с иконата в трея, че не можеш да имаш такъв контрол без де имаш форма...
Абе нещо не е перфектно, дадох ти начало, останалото трябва да си го измислиш сам...
Естествено има го и дърварския начин... да пуснеш един таймер дето да проверява дали формата е != null и ако е да я скрие.... това в началото на приложението, ама не е препоръчително поради очевидни причини...

от scarylabcat (801 точки)


0
Разгледай Thread класа.
http://msdn.microsoft.com/en-us/library/aa645740(v=vs.71).aspx

от JulianG (5316 точки)


0
Да ама пак е хак. Независимо дали е с таймер или казваш на нишката да спи...

от scarylabcat (801 точки)

0
Защо ще казваш на нишката да спи? Просто си я пускаш като всеки друг сървиз в windows-а, тя си няма форма, event-driven е - ако някой иска нещо от нея тя го прави, ако никой не я бута, си стои и чака. Колегата задал въпроса явно не е много напред в материала... Формата не би трябвало да "работи". Нейната работа е да се "покаже", да осъществи интерфейса с потребителя и в зависимост от неговите действия да стартира този или онзи процес/метод (worker), който да извърши работата. Това дали приложението ще работи или не, кога ще приключи не е пряко свързано с формата. Може приложението да си скрие интерфейса, но да продължи да работи в background режим.

от JulianG (5316 точки)


0
Ето го валидния начин да се направи - http://1drv.ms/1fhksX4

от scarylabcat (801 точки)