Forum » Programiranje » C# problem z kopiranjem
C# problem z kopiranjem
Guti ::
Pozdravljeni,
Imam eno vprašanje in sicer me zanima zakaj mi pri spodnji kodi:
- najprej skopira vse datoteke
- potem pa izpiše "Začetek kopiranja"
- in nato "Konec kopiranja"
in ne:
- izpiše "Začetek kopiranja"
- skopira datotek
- in nato "Konec kopiranja"
KODA:
public void MessageBox(string msg){
.
.
.
}
public void Kopiraj_datoteke()
{
MessageBox("Začetek kopiranja");
for (int i = 0; i < seznamPoti.Count; i++)
{
File.Copy(seznamPoti[i].ToString(), seznamPoti_cilj[i].ToString(),true);
}
MessageBox("Konec kopiranja");
}
lp,
Imam eno vprašanje in sicer me zanima zakaj mi pri spodnji kodi:
- najprej skopira vse datoteke
- potem pa izpiše "Začetek kopiranja"
- in nato "Konec kopiranja"
in ne:
- izpiše "Začetek kopiranja"
- skopira datotek
- in nato "Konec kopiranja"
KODA:
public void MessageBox(string msg){
.
.
.
}
public void Kopiraj_datoteke()
{
MessageBox("Začetek kopiranja");
for (int i = 0; i < seznamPoti.Count; i++)
{
File.Copy(seznamPoti[i].ToString(), seznamPoti_cilj[i].ToString(),true);
}
MessageBox("Konec kopiranja");
}
lp,
Take me down to the paradise city
Where the grass is green
And the girls are pretty
Where the grass is green
And the girls are pretty
MrBrdo ::
Zakaj si pa sam pisal MessageBox metodo? Pokaži še tisto kodo... Drugače ima .NET že MessageBox metodo.
MrBrdo
3p ::
Ker najbrž tvoja "MessageBox" ni modalna (Show namesto ShowDialog) in ker predvidoma uporabljaš Windows.Forms, z zanko za kopiranje zabašeš glavno (GUI) nit, ki več ne zmore pretakati sporočil...
Kopiranje bo moralo iti v svojo nit.
Kopiranje bo moralo iti v svojo nit.
paco ::
Vključi knjižnico za nitenje:
V dogodku, kjer pričneš kopiranje:
Metoda za kopiranje:
Mogoče? :)
using System.Threading;
V dogodku, kjer pričneš kopiranje:
//Vprašaš uporabnika če želi kopirati datoteke if (MessageBox.Show("Pričnem kopiranje?", "???", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { //Če je izbral V redu/OK/..., ustvariš novo nit, ki izvede metodo za kopiranje Thread KopirajThread = new Thread(new ThreadStart(KopirajDatoteke)); KopirajThread.Start(); }
Metoda za kopiranje:
private void KopirajDatoteke() { //Tvoja koda za kopiranje datotek //Ko je kopiranje končano sporočiš, da je kopiranje končano MessageBox.Show("Kopiranje končano!", "!!!", MessageBoxButtons.OK, MessageBoxIcon.Information); }
Mogoče? :)
It iz aj.
Zgodovina sprememb…
- spremenilo: paco ()
Guti ::
Hvala za tak hitre odgovore...
Vzrok zakaj imam svojo funkcijo za MessageBox je ta, da delam spletno aplikacijo v ASP.net in tam "ne gre" oziroma "ne znam" drugače uporabiti MessageBox-a
Koda:
public void MessageBox(string msg)
{
Label lbl = new Label();
lbl.Text = "< _script language='javascript_'>" + Environment.NewLine + "window.alert('" + msg + "')< _/script_>";
Page.Controls.Add(lbl);
}
Sem brskal po netu pa nisem našel druge rešitve kot te, da si pomagaš s javascript ,ki je client-side(Glede MessageBox-a)
Vzrok zakaj imam svojo funkcijo za MessageBox je ta, da delam spletno aplikacijo v ASP.net in tam "ne gre" oziroma "ne znam" drugače uporabiti MessageBox-a
Koda:
public void MessageBox(string msg)
{
Label lbl = new Label();
lbl.Text = "< _script language='javascript_'>" + Environment.NewLine + "window.alert('" + msg + "')< _/script_>";
Page.Controls.Add(lbl);
}
Sem brskal po netu pa nisem našel druge rešitve kot te, da si pomagaš s javascript ,ki je client-side(Glede MessageBox-a)
Take me down to the paradise city
Where the grass is green
And the girls are pretty
Where the grass is green
And the girls are pretty
AndrejS ::
Če delaš to web aplikacijo moreš vedet kako te stvari sploh delajo. Najprej se izvede celotna koda in nato IIS zgenerira stran, zato ne vidiš kaj se je vmes zgodilo.
Rešitev je res da z nitmi rešiš kopiranje, in stvar toliko časa ponovno nalagaš dokler ni nit končala kopiranja. Nato na stran to izpišeš in nehaš ponovno nalaganje. Lepša rešitev je s pomočjo AJAX.
Rešitev je res da z nitmi rešiš kopiranje, in stvar toliko časa ponovno nalagaš dokler ni nit končala kopiranja. Nato na stran to izpišeš in nehaš ponovno nalaganje. Lepša rešitev je s pomočjo AJAX.
Guti ::
Hvala.. :)
Take me down to the paradise city
Where the grass is green
And the girls are pretty
Where the grass is green
And the girls are pretty
Guti ::
Imam še eno vprašanje...
Poskušam namreč ustaviti kopiranje...
Začetek kopiranja:
Thread KopirajThread = new Thread(new ThreadStart(KopirajDatoteke));
KopirajThread.Start();
Prekinitev kopiranja:
KopirajThread.Abort();
Pa se nič ne zgodi ko stisnem abort(), kr dalje kopira...
A bi moral kopirat bit po bit ...al je kakšna druga rešitev.
a nima noben nasveta....
Poskušam namreč ustaviti kopiranje...
Začetek kopiranja:
Thread KopirajThread = new Thread(new ThreadStart(KopirajDatoteke));
KopirajThread.Start();
Prekinitev kopiranja:
KopirajThread.Abort();
Pa se nič ne zgodi ko stisnem abort(), kr dalje kopira...
A bi moral kopirat bit po bit ...al je kakšna druga rešitev.
a nima noben nasveta....
Take me down to the paradise city
Where the grass is green
And the girls are pretty
Where the grass is green
And the girls are pretty
Zgodovina sprememb…
- spremenilo: Guti ()
3p ::
Kopirati moraš košček po košček (pa ne bit, ampak dovolj malo, da lahko vsako sekundo parkrat preveriš, če uporabnik hoče prekinitev). Po navadi niti tudi ne prekineš z abort, ampak nastaviš kak flag (recimo prekinitev = true ali kaj podobnega).
---
Eh, duga lajtunga. Stara tema. Brisanja pa ni. :)
---
Eh, duga lajtunga. Stara tema. Brisanja pa ni. :)
Zgodovina sprememb…
- spremenilo: 3p ()
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | [c#] try/catch, v katerem gradniku je napakaOddelek: Programiranje | 1015 (753) | japol |
» | Visual Studio C++ MessageBox izpis večih spremenljivkOddelek: Programiranje | 1708 (1449) | spinner |
» | [C++] Preverjanje ce je program dos ali win32Oddelek: Programiranje | 1401 (1057) | BigWhale |
» | [C#] prikazovanje int spremenljivk v sporočilnem oknuOddelek: Programiranje | 1232 (942) | darkolord |
» | zacetniska vprasanja pri Visual Basicu 6Oddelek: Programiranje | 1673 (1424) | mte |