19. marts 2008 - 00:57Der er
9 kommentarer og 1 løsning
Threading der ikke helt virker ?
Hejsa,
Jeg har en metode der laver lidt af hvert som jeg skal have til at køre i en tråd for sig. Og for ikke at poste hele min metode her har jeg fjernet en del af koden. Jeg har sat noget forklaring ind i koden for at skabe lidt overblik
public string CreateExcelFile(string tableId, int[] measures, string email) { string path = @"D:\www\site\input\"; StreamWriter sw = File.CreateText(path + "franettet.xls"); List<TableItem> objList = GetAllTables(); . . . Her generere jeg indholdet i en excel fil. . . .
string path1 = @"D:\BatchFiles\"; StreamWriter sw1 = File.CreateText(path1 + "" + dateStamp + "" + timeStamp + ".bat"); . . . Her skriver jeg det der skal være i .bat filen . . .
string path2 = @"D:\www\site\output\"; string file = null; while ((file == null)) { if (!File.Exists(path1 + "" + dateStamp + "" + timeStamp + ".bat")) { . . . Her trækker jeg en .tif fil fra serveren og laver den om til jpg. Og filen sendes med mail til en bruger . . .
break; } }
//--- Sender dato og klokkeslet retur. return file; }
Den batch fil jeg smidder startes af en windows service som sætter nogle processer igang på serveren som tager et lille minuts tid. Jeg vil derfor have det min metode til at køre i en tråd for sig, men der sker desværre ikke en rygende hatfis når jeg prøver på det.
Så jeg tænkte at det måske ikke var muligt at lave filer, gemme dem og så loope for at se om batch filen er slettet i en tråd.
Så hvis der sidder nogle med noget erfaring på dette område er det meget velkommen ;o)
private class Information{ public string TableId; public int[] Measures; public string Email; public Information(){} }
og for at oprette tråden..
Thread newThread = new Thread(klasseHvorIDenNyeMetodeBefinderSig.CreateExcelFile); Information information = new Information(); information.TableId = "et eller andet"; information.Measures = null; information.Email = "et eller andet"; newThread.Start(information);
det burde være det..
du skal bare rette data'en her også selvfølgelig
information.TableId = "et eller andet"; information.Measures = null; information.Email = "et eller andet";
det hele er utestet, men sådan forstod jeg lige API'et ved et hurtigt kig.
Ok det vil jeg lige kigge på senere, jeg sidder desværre ikke min bærbar før i eftermiddag.
Jeg testede forøvrigt også hvor min metode var lavet om til public void CreateExcelFile() hvor jeg havde lagt mine parametre ud som properties i den samme klasse men lige lidt hjalp det. Den batch fil jeg skal smide på serveren bliver bare ikke smidt, så jeg gav igår aftes.
Ok der var jeg en smule for hurtig den excel fil jeg laver bliver lagt på serveren, men den bliver kun oprettet, der bliver ikke efterfølgende skrevet noget i den, så det kan tyde på at der opstår en fejl efter at filen er lavet.
Der er skam .Close() på samtlige af mine sw'er så snart de ikke skal bruges mere ;o) Nu har jeg så bare ikke lige adgang til den server det hele skal ligge på lige nu ,men jeg skal nok lige melde tilbage når jeg får testet noget mere ;o)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.