Salut
voila j'ai un programme qui doit recuperer des infomrations dans des fichiers texte et se connecter a un site web pour y recuperer des infos
j'utilise des thread car mon appli doit gerer en meme tps des fichiers dans 2 dossiers differents.
Mon pb est que la connection et le traitement se fai pour le 1er fichiers de chaque dossier mais ensuite il me met un time out kelk1 aurait-il une solution????
Voila mon code pour + d'explication
private
void btnStart_Click(
object sender,
EventArgs e)
{
System.Threading.
ThreadPool.QueueUserWorkItem(
new System.Threading.
WaitCallback(
this.SearchFile));
}
private
void SearchFile(
object arg)
{
Sett.DB =
new
OleDbConnection();
Sett.DB.ConnectionString =
@"Provider=Microsoft.Jet.OLEDB.4.0;" +
@"Data source= " +
Sett.Path +
"\\Sniffer.mdb";
Sett.DB.Open();
DirectoryInfo CDdir =
new
DirectoryInfo(
Sett.DirCD);
Sett.CDfic = CDdir.GetFiles(
"*.txt");
DirectoryInfo Artdir =
new
DirectoryInfo(
Sett.DirArt);
Sett.Artfic = Artdir.GetFiles(
"*.txt");
Thread CDthread =
new
Thread(
new
ThreadStart(Traitement));
Thread Artthread =
new
Thread(
new
ThreadStart(TraitementArt));
CDthread.Start();
Artthread.Start();
CDthread.Join();
Artthread.Join();
MessageBox.Show(
"Fin");
Sett.DB.Close();
}
private
void Traitement()
{
StreamReader sr =
null;
if (
Sett.CDfic.Length > 0)
{
//Recherche des fichiers contenu dans le dossier
for (
int i = 0; i <
Sett.CDfic.Length; i++)
{
if (
Sett.CDfic[i].CreationTime <
DateTime.Now)
{
sr =
new
StreamReader(
Sett.CDfic[i].OpenRead());
Sett.CDline = sr.ReadLine();
CDParserHTML();
sr.Close();
}
}
}
}
private
void CDParserHTML()
{
string url =
null;
string flux;
string flux1 =
null;
int cpt = 0;
int index = 0;
WebResponse CDwrs =
null;
WebRequest CDwrq =
WebRequest.Create(
Sett.urlCDFnac.Replace(
"RECHERCHE",
Regex.Split(
Sett.CDline,
"\t").GetValue(1).ToString()));
try
{
CDwrs = CDwrq.GetResponse();
if (
Regex.Match(CDwrs.ResponseUri.ToString(),
"noResult.aspx",
RegexOptions.IgnoreCase).Success)
{
//inserer le code bar13 l'album le nom du ou des artistes et l'url vide
webBrowser1.Navigate(CDwrs.ResponseUri.ToString());
url =
"";
}
if (
Regex.Match(CDwrs.ResponseUri.ToString(),
"album.aspx",
RegexOptions.IgnoreCase).Success)
{
webBrowser1.Navigate(CDwrs.ResponseUri.ToString());
url = CDwrs.ResponseUri.ToString();
}
if (
Regex.Match(CDwrs.ResponseUri.ToString(),
"searchCategoryResult.aspx?",
RegexOptions.IgnoreCase).Success)
{
Encoding encode = System.Text.
Encoding.GetEncoding(
"utf-8");
StreamReader readStream =
new
StreamReader(CDwrs.GetResponseStream(), encode);
while ((flux = readStream.ReadLine()) !=
null)
{
cpt =
Regex.Matches(flux,
">" +
Regex.Split(
Sett.CDline,
"\t").GetValue(1).ToString() +
"<",
RegexOptions.IgnoreCase).Count;
if (cpt == 1)
{
while ((flux = readStream.ReadLine()) !=
null)
{
cpt =
Regex.Matches(flux,
">" +
Regex.Split(
Sett.CDline,
"\t").GetValue(2).ToString() +
"<",
RegexOptions.IgnoreCase).Count;
if (cpt == 1)
{
//inserer le code bar13 l'album le nom du ou des artistes et l'url
index = flux1.Length - (flux1.IndexOf(
"http") + 2);
url = flux1.Substring(flux1.IndexOf(
"http"), index);
webBrowser1.Navigate(url);
}
}
}
flux1 = flux;
}
//fin while
readStream.Close();
}
InsertCD(url);
}
catch (
Exception ex)
{
//MessageBox.Show(ex.Message);
}
}
private
void TraitementArt()
{
StreamReader Artsr =
null;
if (
Sett.Artfic.Length > 0)
{
//Recherche des fichiers contenu dans le dossier
for (
int i = 0; i <
Sett.Artfic.Length; i++)
{
if (
Sett.Artfic[i].CreationTime <
DateTime.Now)
{
Artsr =
new
StreamReader(
Sett.Artfic[i].OpenRead());
Sett.ArtLine = Artsr.ReadLine();
ArtFct();
Artsr.Close();
}
}
}
}
private
void ArtFct()
{
string urlArt =
null;
WebResponse wrs =
null;
WebRequest wrq =
WebRequest.Create(
Sett.urlArtFnac.Replace(
"RECHERCHE",
Regex.Split(
Sett.ArtLine,
"\t").GetValue(1).ToString()));
try
{
wrs = wrq.GetResponse();
if (
Regex.Match(wrs.ResponseUri.ToString(),
"noResult.aspx",
RegexOptions.IgnoreCase).Success)
{
//inserer le code bar13 l'album le nom du ou des artistes et l'url vide
webBrowser2.Navigate(wrs.ResponseUri.ToString());
urlArt =
"";
}
else
{
urlArt = wrs.ResponseUri.ToString();
webBrowser2.Navigate(wrs.ResponseUri.ToString());
}
InsertArt(urlArt);
}
catch (
Exception ex)
{
}
}
Afficher la suite