Դիտել ողջ տարբերակը : հարցեր C#-ի վերաբերյալ
ով C#-ից հարց ունի, թող ստեղ գրի, կփորձենք պատասխանել.
ես մի հարց ունեմ. ոնց գրեմ, որ CheckBox-ի ծիտիկը դնելուց առաջ DateTimePicker-ը լինի ոչ ակտիվ, դնելուց հետո ակտիվ:oy
if (checkBox1.Checked)
dateTimePicker1.Enabled = true;
else dateTimePicker1.Enabled = false;
պետքա որ սենց մի բան լինի, մինչև էտել սկզբում dateTimePicker1.Enabled=false որ check անելուց հետո նոր true դառնա
if (checkBox1.Checked)
dateTimePicker1.Enabled = true;
else dateTimePicker1.Enabled = false;
պետքա որ սենց մի բան լինի, մինչև էտել սկզբում dateTimePicker1.Enabled=false որ check անելուց հետո նոր true դառնա
առաջի մասը աշխատումա, բայց 2-րդը չէ, այսինքն բացելուց ծիտիկը դրած չի, բայց ակտիվա dateTimePicker-ը:(
Ավելացվել է 5 րոպե անց
if (checkBox1.Checked)
dateTimePicker1.Enabled = true;
else dateTimePicker1.Enabled = false;
պետքա որ սենց մի բան լինի, մինչև էտել սկզբում dateTimePicker1.Enabled=false որ check անելուց հետո նոր true դառնա
լավ, հասկացա. սկզբում dateTimePicker1.Enabled=false-ի տեղը InitializeComponent();-ից հետո պետքա գրվի this.dateTimePicker1.Enabled = false;;)
որ ասել էի սկզբից էտի ոչ թե if-ից առաջ էի ասել այլ հենց InitializeComponent();-ում.
բայց ինչի InitializeComponent();-ից հետո որ ?
հենց իրա մեջել կարաս գրես.
hippy w.s
30.11.2007, 10:34
regexp-ի մասին պարազա C# -ում ով ինչ ռեսուռսների պարզա օգտակար տեղ կարա ասի մենակ ռուսերեն:o
շնորհակալություն նախապես
Անհրաժեշտ է C#-ի լավ իմացությամն բարի մարդ (հատկապես Web-ի մասով (ASP.NET) )
Ով կզոհի իր մեկ օրը հանուն անծանոթ (կամ գուցե ծանոթ) մարդկանց.
Պահանջվում է փորցառու մարդու կոնսուլտացիա: :)
Գրել 203910237 (ICQ) կամ hayk.manashyan (Skype)
Ուրեմն ունեմ մի հատ thread, որը կոնսոլից անընդհատ տվյալներ է կարդում: Console.ReadLine() է կանչում և սպասում է մինչև մի բան գրես: Հիմնական thread-ից այդ thread-ը abort եմ անում, բայց թարսի պես այդ thread abort չի լինում, abort անելուց հետո և կոնսոլում որևէ բան գրելուց հետո է abort լինում: Ոնց անեմ որ thread -ը միանգամից abort լինի, թե չե հիմնական thread-ը պրծնում է գործը,իսկ ծրագիրը չի անջատվում, որովհետև մյուս thread-ը չի անջատվել:
onlooker
20.03.2008, 23:11
Ուրեմն ունեմ մի հատ thread, որը կոնսոլից անընդհատ տվյալներ է կարդում: Console.ReadLine() է կանչում և սպասում է մինչև մի բան գրես: Հիմնական thread-ից այդ thread-ը abort եմ անում, բայց թարսի պես այդ thread abort չի լինում, abort անելուց հետո և կոնսոլում որևէ բան գրելուց հետո է abort լինում: Ոնց անեմ որ thread -ը միանգամից abort լինի, թե չե հիմնական thread-ը պրծնում է գործը,իսկ ծրագիրը չի անջատվում, որովհետև մյուս thread-ը չի անջատվել:
im kartciqov abort linum e, bayc minchev ayd erkrord potok@ hascnum e kanchel Console.Readline() , sakayn himnakan potok@ ashxatum ev du ches hascnum grel... ev karoghanum es miayn ayn jamanak, erb himnakan@ anelu ban chuni... pordzir poxel erkrordi priorityn, vor ancankali Readline@ chhascvi kanchvel,,, ete code@ gres, guce karoghanam ognel...
Մոդերատորական: Ծանոթացեք ակումբի կանոնադրությանը (http://www.akumb.am/showthread.php?t=2437#post67297)։ Մասնավորապես ֆորումում լատիներեն տառերով հայերեն գրելն արգելվում է։
Եթե ինչ-որ պատճառով հայերեն մեքենագրելու հետ կապված դժվարություններ ունեք, ապա կարող եք օգտագործել ֆորումում ներդրված հայերեն մեքենագրման համակարգը, Տրանսլիտի ձևափոխիչը (http://www.akumb.am/showthread.php?t=42) կամ կարդացեք «Ինչպե՞ս գրել հայերեն» (http://www.akumb.am/showthread.php?t=279) թեման:
im kartciqov abort linum e, bayc minchev ayd erkrord potok@ hascnum e kanchel Console.Readline() , sakayn himnakan potok@ ashxatum ev du ches hascnum grel... ev karoghanum es miayn ayn jamanak, erb himnakan@ anelu ban chuni... pordzir poxel erkrordi priorityn, vor ancankali Readline@ chhascvi kanchvel,,, ete code@ gres, guce karoghanam ognel...
Հաստատ աբորտ չի լինում, որովհետև հիմնական տռէդի պրծնելուց հետո դեբագ մոդում պաուզա եմ տալիս: ցույց է տալիս որ 2-րդ տրէդը Console.Readline()-ի վրա կանգնած սպասում է և աբորտ չի լինում մինչև այդ տողի վրայով չանցնես:Մեկ էլ հույսը պետք չի դնել նրա վրա ,որ պռիորիտետը փոխելով չի հասցնի 2-րդ տրեդը աշխատել, կարող է 2 յադռոանի պռոցեսոր է և զուգահեռ են աշխատում:
onlooker
21.03.2008, 23:35
Հաստատ աբորտ չի լինում, որովհետև հիմնական տռէդի պրծնելուց հետո դեբագ մոդում պաուզա եմ տալիս: ցույց է տալիս որ 2-րդ տրէդը Console.Readline()-ի վրա կանգնած սպասում է և աբորտ չի լինում մինչև այդ տողի վրայով չանցնես:Մեկ էլ հույսը պետք չի դնել նրա վրա ,որ պռիորիտետը փոխելով չի հասցնի 2-րդ տրեդը աշխատել, կարող է 2 յադռոանի պռոցեսոր է և զուգահեռ են աշխատում:
փաստորեն ես հիմարություն էի գրել աբորտի մասին... բայգ դա չի փոխում փոստիս հայտարարը... անցանկալի րիդլայնը չպետք է կանչվի. պորձիր ստատիկ բուլեան տիպի փոփոխական սարքես,,, աբորտ կանչելուց այն ֆոլս դարձնես... իսկ երկրորդ պոտոկի ֆունկցիայում Րիդլայն կանչելուց առաջ ստուգես դրա տրու լինելը...
փաստորեն ես հիմարություն էի գրել աբորտի մասին... բայգ դա չի փոխում փոստիս հայտարարը... անցանկալի րիդլայնը չպետք է կանչվի. պորձիր ստատիկ բուլեան տիպի փոփոխական սարքես,,, աբորտ կանչելուց այն ֆոլս դարձնես... իսկ երկրորդ պոտոկի ֆունկցիայում Րիդլայն կանչելուց առաջ ստուգես դրա տրու լինելը...
Չի օգնի որովհետև զուգահեռ են աշխատում տռեդները: 2րդ տռեդը կստուգի բուլը - որը կլինի 1 և կկանչի Րիդլայն , հետո 1-ին տռեդը բուլը 0 կդարձի և աբորտ կկանչի , բայց 1-ն Րիդլայն է անում ու չի անջատվի: :(
onlooker
21.03.2008, 23:54
Չի օգնի որովհետև զուգահեռ են աշխատում տռեդները: 2րդ տռեդը կստուգի բուլը - որը կլինի 1 և կկանչի Րիդլայն , հետո 1-ին տռեդը բուլը 0 կդարձի և աբորտ կկանչի , բայց 1-ն Րիդլայն է անում ու չի անջատվի: :(
false dardznelu pahin popoxakan@ lock ara...
false dardznelu pahin popoxakan@ lock ara...
լավ մտածիր:think, արդյոք լոք անելը կօգնի, որովհետև մինչև լոքը 2-րդ տռեդը Րեադլայնին հասել է:
onlooker
22.03.2008, 00:21
լավ մտածիր:think, արդյոք լոք անելը կօգնի, որովհետև մինչև լոքը 2-րդ տռեդը Րեադլայնին հասել է:
ներիր խնդրում եմ, ուղղակի մահացու հոգնած վիճակում մի պրոյեկտի վրա եմ մտածում, և ի միջիայլոց ու ուղեղիս կողմից տարրական անալիզի չենթարկվաց բաներ գրում... թե լոքը ինչ կապ ուներ :oy լավ, բայց ախր էդ կոնսոլը ինչիդ է պետք:) ... վերջի վերջո կարող ես հիմնական պոտոկի աշխատանքի վերջում դուրս բերել... «սեղմեք Մուտք ելքի համար» :)
ներիր խնդրում եմ, ուղղակի մահացու հոգնած վիճակում մի պրոյեկտի վրա եմ մտածում, և ի միջիայլոց ու ուղեղիս կողմից տարրական անալիզի չենթարկվաց բաներ գրում... թե լոքը ինչ կապ ուներ :oy լավ, բայց ախր էդ կոնսոլը ինչիդ է պետք:) ... վերջի վերջո կարող ես հիմնական պոտոկի աշխատանքի վերջում դուրս բերել... «սեղմեք Մուտք ելքի համար» :)
թարսի պես պետք է:(, որովհետև կա 2 ծրագիր, որից մեկը կոնսոլ է, իսկ մյուսը սովորական GUI-ով ծրագիր, որը աշխատացնում է կոնսոլը, ու աշխատանքի ընթացքում կոնսոլի եկրանը չի երևում, որովհետև հիմնական ծրագիրն է ղեկավարում կոնսոլի մուտքն ու ելքը: Հիմա ես ոնց ասեմ այդ կոնսոլ ծրագրին:), որ գիտես ինչ վերջում մի հատ անկապ բան գրի որ տռեդս փակվի:
onlooker
22.03.2008, 14:24
թարսի պես պետք է:(, որովհետև կա 2 ծրագիր, որից մեկը կոնսոլ է, իսկ մյուսը սովորական GUI-ով ծրագիր, որը աշխատացնում է կոնսոլը, ու աշխատանքի ընթացքում կոնսոլի եկրանը չի երևում, որովհետև հիմնական ծրագիրն է ղեկավարում կոնսոլի մուտքն ու ելքը: Հիմա ես ոնց ասեմ այդ կոնսոլ ծրագրին:), որ գիտես ինչ վերջում մի հատ անկապ բան գրի որ տռեդս փակվի:
փորփրեցի ու չկարողացա... :8
կոդտ տուր նայեմ կարողա մի բան դուրս գա
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace AGamer.Gamer
{
public sealed class GenericGamer<TConnector,TGamer>
where TConnector : IConnector
where TGamer : Gamer
{
private TConnector connector_;
private TGamer gamer_;
private bool exit_;
private AutoResetEvent waitForOutput = new AutoResetEvent(false);
private AutoResetEvent waitForInput = new AutoResetEvent(false);
public GenericGamer(TConnector connector, TGamer gamer)
{
connector_ = connector;
gamer_ = gamer;
}
public void Run()
{
Thread inputThread = new Thread(new ThreadStart(InputThreadFunction));
Thread outputThread = new Thread(new ThreadStart(OutputThreadFunction));
Thread gamerThread = new Thread(new ThreadStart(GamerThreadFunction));
inputThread.Start();
outputThread.Start();
gamerThread.Start();
while(!gamer_.ExitState)
Thread.Sleep(100);
exit_ = true;
Thread.Sleep(100);//give some time
inputThread.Abort();
outputThread.Abort();
gamerThread.Abort();
}
private void InputThreadFunction()
{
while (!exit_)
{
connector_.Input(Console.ReadLine());//The problem is here
waitForInput.Set();
waitForOutput.Set();
}
}
private void OutputThreadFunction()
{
while (!exit_)
{
waitForOutput.WaitOne();
Console.Write(connector_.Output()); // end line will return connector_.Output
}
}
private void GamerThreadFunction()
{
while (!exit_)
{
switch (gamer_.DoJob())
{
case 0:
exit_ = true;
break;
case 1:
waitForOutput.Set();
break;
case 2:
waitForInput.WaitOne();
break;
}
}
}
}
}
Կարամ այսքան մասը տալ:
սենց դեպքի c++-ով եմ հանդիպել իչքան հիշում եմ abort-ի տեղը teminate գրեցի դզվեց
բայ վոր ամբողջ կոդը տաիր ավելի լավ կլիներ
Ավելացվել է 9 րոպե անց
while (!gamer_.ExitState)
ստեղ ExitState-ը ինչ փոփոխականա ?
երևի ստուգումա gamer_-ը վերջացնումա աշխատանքը?
սենց դեպքի c++-ով եմ հանդիպել իչքան հիշում եմ abort-ի տեղը teminate գրեցի դզվեց
բայ վոր ամբողջ կոդը տաիր ավելի լավ կլիներ
Ավելացվել է 9 րոպե անց
while (!gamer_.ExitState)
ստեղ ExitState-ը ինչ փոփոխականա ?
երևի ստուգումա gamer_-ը վերջացնումա աշխատանքը?
1.Վերջին հարցի պատասխանը այո է, ստուգում է թե երբ է gamer-ը վերջացնում իր գործը:
2.C#-ում տրեդը տերմինեյտ ֆունկցիա չունի:
3.Լրիվ կոդը տալը անհնար է և անիմաստ է այն պատճայով , որ շատ երկար է և դեր չի խաղում այս հարցում: Ինչ պետք է այստեղ կա: Եթե ուզում եք աշխատացնել ուղղակի ջնջեք ավելորդ մասերը և main-ից կանչեք Run մեթոդը:
Օրինակ
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Threading;
namespace ZDraft
{
class Program
{
private string str;
private bool exit_;
private bool exitState_;
private AutoResetEvent waitForOutput = new AutoResetEvent(false);
private AutoResetEvent waitForInput = new AutoResetEvent(false);
public void Run()
{
Thread inputThread = new Thread(new ThreadStart(InputThreadFunction));
Thread outputThread = new Thread(new ThreadStart(OutputThreadFunction));
inputThread.Start();
outputThread.Start();
while(!exitState_)
Thread.Sleep(100);
exit_ = true;
Thread.Sleep(100);//give some time
inputThread.Abort();
outputThread.Abort();
}
private void InputThreadFunction()
{
while (!exit_)
{
str = Console.ReadLine();
if (str == "quit")
exitState_ = true;
waitForInput.Set();
waitForOutput.Set();
}
}
private void OutputThreadFunction()
{
while (!exit_)
{
waitForOutput.WaitOne();
Console.Write(str);
}
}
static void Main(string[] args)
{
(new Program()).Run();
}
}
}
Երբ գրում ես quit, հիմնական տրեդը ցիկլից դուրս է գալիս, աբորտ է անում inputThread-ը և outputThread-ը և պրծնում է, սակայն inputThread-ը աբորտ չի լինում, այդ իսկ պատճառով ծրագիրը չի փակվում մինչև կոնսոլին մի բան enter չանես:
Փորձեք debuger-ով աշխատացնել և quit գրելուց հետո պաուզա տվեք և կտեսնեք, որ միակ ապրող տրեդը inputThread-ն է, որը կանքնած է str = Console.ReadLine(); տողում:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Threading;
namespace ZDraft
{
class Program
{
private string str;
private bool exit_;
private bool exitState_;
private AutoResetEvent waitForOutput = new AutoResetEvent(false);
private AutoResetEvent waitForexit = new AutoResetEvent(false);
public void Run()
{
Thread inputThread = new Thread(new ThreadStart(InputThreadFunction));
Thread outputThread = new Thread(new ThreadStart(OutputThreadFunction));
inputThread.Start();
outputThread.Start();
waitForexit.WaitOne();
exit_ = true;
Thread.Sleep(100);//give some time
inputThread.Abort();
outputThread.Abort();
}
private void InputThreadFunction()
{
while (!exit_)
{
str = Console.ReadLine();
if (str == "quit")
// exitState_ = true;
waitForexit.Set();
waitForOutput.Set();
}
}
private void OutputThreadFunction()
{
while (!exit_)
{
waitForOutput.WaitOne();
Console.Write(str);
}
}
static void Main(string[] args)
{
(new Program()).Run();
}
}
}
դզել եմ.իմ մոտ սենց աշխատումա
պատճառը while (!exitState_)
Thread.Sleep(100);
exit_ = true;
ստեղ էր մինչևվ exit_ = true ես քայլը կհասցներ կատարել մի հատ ցիկլ էր գնում
ստեղ while (!exit_)
{
str = Console.ReadLine();
if (str == "quit")
exitState_ = true;
waitForInput.Set();
waitForOutput.Set();
}
Այո , այս ձևով կաշխատի:ok,բայց :( էլի իմ ուզածը չի:
Բացատրեմ
Այս կարճ օրինակը այդքան էլ հաջող ձևով չէի գրել: Ըստ այս գրածի միայն կոնսոլից կարելի է ծրագիրը փակել, իսկ ես ուզում եմ նաև որ մեկ ուրիշ տրեդից էլ հնարավոր լինի այն փակել: Օրիգինալում կա նաև GamerThread-ը, որը նույնպես կարող է ծրագիրը փակել կախված նրանից թե gamer_.DoJob()-ը ինչ կվերադարձնի: Ոնց ֆռցնենք մեկա այդ րեադլայնի վրա կանգնած տրեդին փակելու խնդրին ենք գալիս:
Երևի այսպես,
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Threading;
namespace ZDraft
{
class Program
{
private Random rand = new Random();
private string str;
private bool exit_;
private bool exitState_;
private AutoResetEvent waitForOutput = new AutoResetEvent(false);
private AutoResetEvent waitForInput = new AutoResetEvent(false);
public void Run()
{
Thread inputThread = new Thread(new ThreadStart(InputThreadFunction));
Thread outputThread = new Thread(new ThreadStart(OutputThreadFunction));
Thread gamerThread = new Thread(new ThreadStart(GamerThreadFunction));
inputThread.Start();
outputThread.Start();
gamerThread.Start();
while(!exitState_)
Thread.Sleep(100);
exit_ = true;
Thread.Sleep(100);//give some time
inputThread.Abort();
outputThread.Abort();
gamerThread.Abort();
}
private void InputThreadFunction()
{
while (!exit_)
{
str = Console.ReadLine();
if (str == "quit")
exitState_ = true;
waitForInput.Set();
waitForOutput.Set();
}
}
private void OutputThreadFunction()
{
while (!exit_)
{
waitForOutput.WaitOne();
Console.WriteLine(str);
}
}
private void GamerThreadFunction()
{
while (!exit_)
{
switch (rand.Next(3))//instead of gamer_.DoJob()
{
case 0:
exitState_ = true;
break;
case 1:
waitForOutput.Set();
break;
case 2:
waitForInput.WaitOne();
break;
}
}
}
static void Main(string[] args)
{
(new Program()).Run();
}
}
}
random-ի պատճառով մեկ quit հրամանով կփակվի, մեկ մեկ էլ GamerThread-ում կորոշվի , որ ծրագիրը պիտի փակվի և այդ ժամանակ էլ ի հայտ կգա պրոբլեմը:
while (!exit_)
{ connector_.Input(Console.ReadLine());//The problem is here
Thread.Sleep(100);//tog mi 100ms spasi vor hascni anjati
waitForInput.Set();
waitForOutput.Set();
}
ես մասը սենց գրի . պտի որ քո ուզածը լինի
while (!exit_)
{ connector_.Input(Console.ReadLine());//The problem is here
Thread.Sleep(100);//tog mi 100ms spasi vor hascni anjati
waitForInput.Set();
waitForOutput.Set();
}
ես մասը սենց գրի . պտի որ քո ուզածը լինի
Thread.Sleep(100);//tog mi 100ms spasi vor hascni anjati տողին որ հասնի կանջատվի, վատը այն է որ այդ տողին չի հասնում:
մի հատ փորձի
Փորցել եմ: Չի օգնում:
ես են փոքր օրինակի վրա արեցի օգնեց
ես են փոքր օրինակի վրա արեցի օգնեց
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Threading;
namespace ZDraft
{
class Program
{
private Random rand = new Random();
private string str;
private bool exit_;
private bool exitState_;
private AutoResetEvent waitForOutput = new AutoResetEvent(false);
private AutoResetEvent waitForInput = new AutoResetEvent(false);
public void Run()
{
Thread inputThread = new Thread(new ThreadStart(InputThreadFunction));
Thread outputThread = new Thread(new ThreadStart(OutputThreadFunction));
Thread gamerThread = new Thread(new ThreadStart(GamerThreadFunction));
inputThread.Start();
outputThread.Start();
gamerThread.Start();
while(!exitState_)
Thread.Sleep(100);
exit_ = true;
Thread.Sleep(100);//give some time
inputThread.Abort();
outputThread.Abort();
gamerThread.Abort();
}
private void InputThreadFunction()
{
while (!exit_)
{
str = Console.ReadLine();
if (str == "quit")
exitState_ = true;
Thread.Sleep(100);
waitForInput.Set();
waitForOutput.Set();
}
}
private void OutputThreadFunction()
{
while (!exit_)
{
waitForOutput.WaitOne();
Console.WriteLine(str);
}
}
private void GamerThreadFunction()
{
while (!exit_)
{
switch (rand.Next(3))//instead of gamer_.DoJob()
{
case 0:
exitState_ = true;
break;
case 1:
waitForOutput.Set();
break;
case 2:
waitForInput.WaitOne();
break;
}
}
}
static void Main(string[] args)
{
(new Program()).Run();
}
}
}
Ա՞յս օրինակում:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Threading;
namespace ZDraft
{
class Program
{
private string str;
private bool exit_;
private bool exitState_;
private AutoResetEvent waitForOutput = new AutoResetEvent(false);
private AutoResetEvent waitForInput = new AutoResetEvent(false);
public void Run()
{
Thread inputThread = new Thread(new ThreadStart(InputThreadFunction));
Thread outputThread = new Thread(new ThreadStart(OutputThreadFunction));
inputThread.Start();
outputThread.Start();
while (!exitState_)
Thread.Sleep(100);
exit_ = true;
Thread.Sleep(100);//give some time
inputThread.Abort();
outputThread.Abort();
}
private void InputThreadFunction()
{
while (!exit_)
{
str = Console.ReadLine();
if (str == "quit")
exitState_ = true;
Thread.Sleep(100);
waitForInput.Set();
waitForOutput.Set();
}
}
private void OutputThreadFunction()
{
while (!exit_)
{
waitForOutput.WaitOne();
Console.Write(str);
}
}
static void Main(string[] args)
{
(new Program()).Run();
}
}
}
ստեղ
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Threading;
namespace ZDraft
{
class Program
{
private string str;
private bool exit_;
private bool exitState_;
private AutoResetEvent waitForOutput = new AutoResetEvent(false);
private AutoResetEvent waitForInput = new AutoResetEvent(false);
public void Run()
{
Thread inputThread = new Thread(new ThreadStart(InputThreadFunction));
Thread outputThread = new Thread(new ThreadStart(OutputThreadFunction));
inputThread.Start();
outputThread.Start();
while (!exitState_)
Thread.Sleep(100);
exit_ = true;
Thread.Sleep(100);//give some time
inputThread.Abort();
outputThread.Abort();
}
private void InputThreadFunction()
{
while (!exit_)
{
str = Console.ReadLine();
if (str == "quit")
exitState_ = true;
Thread.Sleep(100);
waitForInput.Set();
waitForOutput.Set();
}
}
private void OutputThreadFunction()
{
while (!exit_)
{
waitForOutput.WaitOne();
Console.Write(str);
}
}
static void Main(string[] args)
{
(new Program()).Run();
}
}
}
ստեղ
Այստեղ կաշխատի, որովհետև այստեղ միայն input-ն է որոշողը թե երբ է ծրագիրը փակվելու, բայց ոնց որ գրել էի նախորդ գրառումներից մեկում, այս կոդում սխալմամբ պետքական կոդեր էի ջնջել, ու այս կոդը պրոբլեմի հետ կարելի է ասել կապ չունի, նայիր սրա նախորդ գրառման կոդը:
inputThread.Start();
outputThread.Start();
[waitForexit.WaitOne();
exit_ = true;
Thread.Sleep(100);//give some time
inputThread.Abort();
outputThread.Abort();
սենց գրի ու ցանկացած Thread-ից սիգնալ տու waitForexit.Set();
inputThread.Start();
outputThread.Start();
[waitForexit.WaitOne();
exit_ = true;
Thread.Sleep(100);//give some time
inputThread.Abort();
outputThread.Abort();
սենց գրի ու ցանկացած Thread-ից սիգնալ տու waitForexit.Set();
Էլի չի օգնի:(
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Threading;
namespace ZDraft
{
class Program
{
private Random rand = new Random();
private string str;
private bool exit_;
private AutoResetEvent waitForOutput = new AutoResetEvent(false);
private AutoResetEvent waitForInput = new AutoResetEvent(false);
private AutoResetEvent waitForExit = new AutoResetEvent(false);
public void Run()
{
Thread inputThread = new Thread(new ThreadStart(InputThreadFunction));
Thread outputThread = new Thread(new ThreadStart(OutputThreadFunction));
Thread gamerThread = new Thread(new ThreadStart(GamerThreadFunction));
inputThread.Start();
outputThread.Start();
gamerThread.Start();
waitForExit.WaitOne();
exit_ = true;
Thread.Sleep(100);//give some time
inputThread.Abort();
outputThread.Abort();
gamerThread.Abort();
}
private void InputThreadFunction()
{
while (!exit_)
{
str = Console.ReadLine();
if (str == "quit")
waitForExit.Set();
Thread.Sleep(100);
waitForInput.Set();
waitForOutput.Set();
}
}
private void OutputThreadFunction()
{
while (!exit_)
{
waitForOutput.WaitOne();
Console.WriteLine(str);
}
}
private void GamerThreadFunction()
{
while (!exit_)
{
switch (rand.Next(3))//instead of gamer_.DoJob()
{
case 0:
waitForExit.Set();
break;
case 1:
waitForOutput.Set();
break;
case 2:
waitForInput.WaitOne();
break;
}
}
}
static void Main(string[] args)
{
(new Program()).Run();
}
}
}
դե որ լրիվ կոդը չունեմ չեմ կարա կոնկրետ բան ասեմ
եթե ուզում ես մի հատ քո ծրագրի նման օրինակ կազմի տու տենամ մի բան կարամ ասեմ.
դե որ լրիվ կոդը չունեմ չեմ կարա կոնկրետ բան ասեմ
եթե ուզում ես մի հատ քո ծրագրի նման օրինակ կազմի տու տենամ մի բան կարամ ասեմ.
Վերջին գրառման կոդը լրիվ աշխատող ծարագիր է:
Ո՞վ կարա ինձ DataTable տիպում ֆիլտրեր կիրառելու գաղափարը մարդերեն բացատրի:
օրինակ ստեղ ֆիլտրում եմ աղյուսակի eID սյան 20-ից մեծ eID պարունակող տողերը
DataView filterbyname = new DataView(); //DataView կլասի օբիեկտ, որը հենց ֆիլտրելու համար էլ ռեալիզացրած ա
filterbyname.Table = myTable; // ցույց ենք տալիս ինչ աղյուսակի հետ պետք ա գործ ունենա
filterbyname.RowFilter = "eID > '20'";// ինչ լոգիկայով պետք ա ֆիլտրի ու որ սյունը՝ մեր դեպքում eID
Table.DataSource = filterbyname; //վիզուալ ույց տա ֆիլտրած հատվածը
Ամեն ինչ հասկանալի ա, բայց ստեղ
string filterStr = "eID > 20";//նույն լոգիկան, նույն սյունի նկատմամբ
DataRow[] frows = myTable.Select(filterStr)//մի տարբերությամբ ընտրած սյուներից պետք ա կազմի տողերի զանգավծ:
պետք ա ստեղծվի DataRow -ի զանգված, որը պետք ա պարունակի ֆիլտրին համապատասխան տողերը, այսինքն կազմված լինի աըդ տողերից:
Առաջին դեպքում ամեն ինչ ստացվում ա ու հասկանալի ա, իսկ երկրորդ դեպքը ոչ ստացվում ա, ոչ էլ կարողանում եմ լիովին ըմբռնել:
մի հատ օրինակ տվեք էլի;
Ժողովուրդ մի հատ օգնեք C# ով շախմատի 8 թագուհիների խնդիրը չի ստացվում
ես տողում ինչ որ error - ա բերում`
branchStates.Push(new State {solution = new List<Point>(), stateBoard = branch});
A new expression requires () or [] after type
Ժողովուրդ մի հատ օգնեք C# ով շախմատի 8 թագուհիների խնդիրը չի ստացվում
ես տողում ինչ որ error - ա բերում`
branchStates.Push(new State {solution = new List<Point>(), stateBoard = branch});
A new expression requires () or [] after type
ես դոդիեզի քերականությունը անգիր չեմ հիշում, բայց միգուցե {} փակագծերը փոխարինես () ով?:think
aerosmith
06.07.2009, 22:27
ժող ջան մի սայթ կասեք, որտեղ գրված լինեն Win-приложения-ների ֆունկցիաներ, իրանց բացատրություններով, մենակ խնդրում եմ գիրք չառաջարկեք էլի։ Ցանկալիա ռուսերենով լինի բացատրությունները։
One_Way_Ticket
06.07.2009, 23:14
http://www.rsdn.ru/
aerosmith
07.07.2009, 10:57
Շատ շնորհակալություն, բայց ճիշտն ասած ցի շարփ-ի վերաբերյալ ոչ մի բան չգտա։
aerosmith
14.07.2009, 13:13
ժող ջան մի հարց
հնարավոր ա ինտերֆեյսում հայտարարված մեթոդը տարբեր ժառանգված կլասսներում տարբեր ռեալիզացիա ունենան??? այսինքն են նկատի ունեմ որ մի մեթոդը մի քանի անգամ ռեալիզացվի , բնականաբար տարբեր ժառանգված կլասսներում։
Իհարկե, ինտերֆեյսի իմաստը հենց էտ ա , ինտերֆեյսի մեջ մեթոդի ռեալիզացիան չկա, մենակ անունն ա, պարամետրերը , վերադարւևրձվող արժեքի տիպը և այլն:
հենց ինչ որ կլաս ժառանգում ա էտ ինտերֆեյսը, պարտադիր պիտի գրվի ինտերֆեյսի բոլոր մեթոդների ռեալիզացիան(ու ոչ միայն մեթոդների), ու տարբեր կլասներ կարող են ռեալիզացնել բնականաբար տարբեր ձևով:
aerosmith
14.07.2009, 23:25
մեկ ել ինչպես կարամ MessageBox-i հաղորդագրոթյուններին գունավորում տալ???
մեկ ել ինչպես կարամ MessageBox-i հաղորդագրոթյուններին գունավորում տալ???
Պետք ա վրձինով նկարես: Ահագին ժամանակ ա չեմ զբաղվել C# -ով, բայց գունահովր հաղորդագրությունները հիշում եմ, որ վրձինով էի գրում: Գրաֆիկա բաժնում նայի, կգտնես:
aerosmith
15.07.2009, 11:27
երևի ես իմ հարցերով հոգնացրեցի, բայց դե նոր եմ սովորում վին ապպլիքեյշն ։
ինձ մի հարց էլ ա հետաքրքրում։
ինչպես կարամ Button-i ձևը փոխեմ ասենք ուղղանկյունից դարձնեմ շրջանաձև??
ուղղակի գրքերի մեջ էնքան հակիրճա ամեն ինչը գրած որ շատ բաներ կան , հարցականա մնում կարդացողի մոտ։
երևի ես իմ հարցերով հոգնացրեցի, բայց դե նոր եմ սովորում վին ապպլիքեյշն ։
ինձ մի հարց էլ ա հետաքրքրում։
ինչպես կարամ Button-i ձևը փոխեմ ասենք ուղղանկյունից դարձնեմ շրջանաձև??
ուղղակի գրքերի մեջ էնքան հակիրճա ամեն ինչը գրած որ շատ բաներ կան , հարցականա մնում կարդացողի մոտ։
//using System.Drawing.Drawing2D;
GraphicsPath gp=new GraphicsPath();
gp.AddEllipse(0,0,50,60);
button1.Region = new Region(gp);
button1 ի տեսքը դարձնում ա էլիպս 50,60 չափերով:
Elmo ջան վրձինը որն ա?:D:D
Elmo ջան վրձինը որն ա?
Brush (http://msdn.microsoft.com/en-us/library/aa983677(VS.71).aspx)-ն ա:
եթե սխալվում եմ, քարով մարով չխփեք, էլի: Ես brush -ով էի գունավոր տեքստ դուրս հանում: Կարող ա ավելի ցիվիլ ձև կա:
MSDN http://msdn.microsoft.com/en-us/library/aa984365(VS.71).aspx
aerosmith
15.07.2009, 20:20
ժող ջան շատ շնորհակալություն օգնությունների համար։:)
aerosmith
27.07.2009, 17:09
Ժող ջան, ինձ սի շառփ-ի լաբորատոր աշխատանքների ձեռնարկ է հարկավոր, կամ էլ մի լավ խնդրագիրք։ Ցանկալի է ռուսերեն լեզվով լինի։
Ուղղակի սենց որ թեմաները սովորում եմ, ուզում եմ խնդիրներ էլ լինեն, որ ամեն թեման ամրապնդեմ։
Н. Культин - C# в задачах и примерах http://torrents.ru/forum/viewtopic.php?t=1965029
Պետք է գրանցվես, որ կարողանաս քաշես:
Իմ բլոգում էլ մեկ-մեկ հետաքրքիր բաներ գրում եմ http://dotnet_am.livejournal.com/
aerosmith
14.08.2009, 17:55
ժող ջան սենց մի հարց։
մեկնումեկդ գիտի, թե search-ի կամ find-ի դիալոգ պատուհանի կասսը որնա՞՞՞
Չկա , ինքդ պիտի գրես:
Այստեղ պատրաստի օրինակ կա՝ http://www.eggheadcafe.com/community/aspnet/2/10046576/no.aspx
aerosmith
05.09.2009, 17:28
հաևգելի c# kam mysql իմացողներ, ոնց կարամ մայեսքյուել ի տվյալները օգտագործեմ c# ում՞՞՞՞՞՞
հաևգելի c# kam mysql իմացողներ, ոնց կարամ մայեսքյուել ի տվյալները օգտագործեմ c# ում՞՞՞՞՞՞
Բա էն սաղ գուգլը որ գրածա ու՞մ համար ա (connecting to mysql with C# )
տարբեր ձևեր կան , փորձի էս մեկը
սա քաշի ինստալ արա, որ Visual Studion կարենա կպնի mysql-ին (Setting up the MyODBC driver)
http://www.geekpedia.com/sample/CSharpToMySQL/MyODBC%203.51.msi
սա էլ պարզ օրինակը(c# կոդ)
http://www.geekpedia.com/sample/CSharpToMySQL/CSharpToMySQL.zip
aerosmith
12.09.2009, 20:54
Ժող ջան, ինչպես կարամ, շարփով , ջփեգ նկաիրի բինար կոդը դարձնեմ սթռինգ տիպի՞
aerosmith
30.12.2009, 18:36
շատ շտապա,
ոնց կարող եմ ֆայլեր գրանցեմ ռեսուրսում, և օգտագործեմ ռեսուրսներից էդ ֆայլերը
Ժողովուրդ ջան ինձ կարաք օգնեք մի հարցում:
Ս# գախտնագրող և վերծանող ծրագիրա հարկավոր որը իր մեջ ներառի գոնե մի քանի ալգորիթմներ (Դես, 3դես, ՌՍԱ, ԱԵՍ և այլն);
Նախապես շնորհակալություն
Ով կարա ասի dictionary-ի մեջ ոնց կարելիա value-ից ստանաս key-ը, կամ ինդեքսը:
Եթե dictionary-ի մեջ դա հնարավոր չի, կարող եք ուրիշ Key-Value Collection խորհուրդ տալ? :8
Մերսի էլ պետք չի, ուրիշ ձև արեցի :pardon
Երեխեք մի սենց հարց,Global.asax.cs.ը Global.asax.ի հետ ավտոմատ չի ստեղծվում,որտեղի՞ց պետք ա ավելացնեմ .cs.ը.կամ էլ մի ուրիշ տարբերակ առաջարկեք, գլոբալ փոփոխական որտեղ հայտարարեմ
Dark_Angel
17.06.2011, 13:14
Global.asax-ը գլոբալ փոփոխականներ պահելու հետ մի քիչ կապ չունի, իսկ թե որտեղ կարելիա պահել, դա խիստ կապվածա նրա հետ, թե ինչի համարա պետք էտ փոփոխականը. ASP.NET-ում կա Session, Application, ViewState, Cache ու կախված նրանից թե ինչի համար, ում համարա պետք էտ փոփոխականը, դրանից ելնելով կարելիա պահել այն նշված object-ներից մեկում.
Global.asax-ը գլոբալ փոփոխականներ պահելու հետ մի քիչ կապ չունի, իսկ թե որտեղ կարելիա պահել, դա խիստ կապվածա նրա հետ, թե ինչի համարա պետք էտ փոփոխականը. ASP.NET-ում կա Session, Application, ViewState, Cache ու կախված նրանից թե ինչի համար, ում համարա պետք էտ փոփոխականը, դրանից ելնելով կարելիա պահել այն նշված object-ներից մեկում.
Շնորհակալություն օգնության համար, խնդիրը վաղուց լուծված է, Session.ը շատ հարմար տարբերակ էր և դա եմ օգտագործել.պարզապես կոնկրետ Global.asax.ի հետ կապված խնդիրը չէր լուծվել, դրա համար չէի գրել:)
aerosmith
17.06.2011, 20:45
Երեխեք մի սենց հարց,Global.asax.cs.ը Global.asax.ի հետ ավտոմատ չի ստեղծվում,որտեղի՞ց պետք ա ավելացնեմ .cs.ը.կամ էլ մի ուրիշ տարբերակ առաջարկեք, գլոբալ փոփոխական որտեղ հայտարարեմ
Չնայած խնդիրը լուծում ստացել է, բայց այնուամենայնիվ ասեմ.
.aspx-ում գլոբալ փոփոխականներ կարելի է պահել <asp:HiddenField քընթրոլում, միայնթե պետք է սկզբում նախատեսված տիպը կոնվերտ անել սթռինգ, այնուհետև պահել, իսկ օգտագործելու ժամանակ էլ պետք է այն հետադաձ կոնվերտել ուզած տիպ :)
մի հարց ունեմ C#-ից, անհրաժեշտ է ռեկուրսիայով ֆակտորիալ հաշվել, ի՞նչն ա ստեղ սխալ:(
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Mutqagreq tiv:");
int k=int.Parse(Console.ReadLine());
Console.WriteLine("Dzer mutqagrac tvi factorialn e:" , fact(k));
}
int fact (int n){
if ((n==0)^(n==1))
return 0;
else
return n*fact(n-1);
}
}
}
մի հարց ունեմ C#-ից, անհրաժեշտ է ռեկուրսիայով ֆակտորիալ հաշվել, ի՞նչն ա ստեղ սխալ:(
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Mutqagreq tiv:");
int k=int.Parse(Console.ReadLine());
Console.WriteLine("Dzer mutqagrac tvi factorialn e:" , fact(k));
}
int fact (int n){
if ((n==0)^(n==1))
return 0;
else
return n*fact(n-1);
}
}
}
Պետք ա լինի return 1; քո գրածով միշտ 0 կստանաս.
Anahit**
27.11.2015, 16:17
Խմբի ծրագրավորողնե՛ր, ձեզանից կ՞ա ինչ-որ մեկը ով որոշակի գումարի դիմաց C#-ով ծրագրեր է գրում: Խոսքը գնում է բավականին հեշտ ծրագրերի մասին: Ինձ պետք է համալսարանում անհատական աշխատանքի համար:
Anahit**
01.12.2015, 18:50
Որ խնդրեմ չե՞ք օգնի գրեմ այս խնդիրը C#-ով:
. Տրված է A(M,N) երկչափ ամբողջ թվային մատրիցա:A(i,j) էլեմենտը կանվանենք հատուկ,եթե այն հանդիսանում է Ֆիբոնաչիի թիվ և այդ թվի թվանշանների գումարը պարզ թիվ է:Հեռացնել այդ զանգվածի այն տողերը,որոնցում կա գոնե մեկ հատուկ էլեմենտ: Նախապես շնորհակալություն
Ի՞նչը չի ստացվում և ի՞նչ եք փորձել։