|
I tried to get the DialogResult but hitting the Print does not close the dialog, so after printing the user will close the dialog so I'll get Cancel
|
|
|
|
|
Hi All,
I’ve an application that should do a huge number of HTTP requests using “POST” method as the following:
In a thread method:
<br />
while (!Stop)<br />
{<br />
<br />
if (requestsArray.Count == 0)<br />
{<br />
Thread.Sleep(500);<br />
continue;<br />
}<br />
<br />
hTTPRequest = (HttpWebRequest) HttpWebRequest.Create(url);<br />
hTTPRequest.Proxy = new WebProxy("proxyServer", proxyPort);<br />
hTTPRequest.Method = "POST";<br />
hTTPRequest.KeepAlive = false;<br />
hTTPRequest.SendChunked = true;<br />
hTTPRequest.AllowWriteStreamBuffering = true;<br />
hTTPRequest.ContentType = "application/x-www-form-urlencoded";<br />
hTTPRequest.Timeout = 30000; (30 Secs)<br />
hTTPRequest.ReadWriteTimeout = 30000;<br />
string postData = "Some params and values";<br />
byte[] Content = new byte[UTF8Encoding.UTF8.GetByteCount(postData.ToCharArray(), 0, postData.Length)];<br />
UTF8Encoding.UTF8.GetBytes(postData, 0, postData.Length, Content, 0);<br />
hTTPRequest.ContentLength = Content.Length;<br />
Stream writeStream = hHTTPRequest.GetRequestStream();<br />
try<br />
{<br />
writeStream.Write(Content, 0, Content.Length);<br />
writeStream.Close();<br />
}<br />
catch<br />
{<br />
Log the error…<br />
}<br />
}<br />
After two or three requests I got the following error logged in my database:
"The operation has timed-out."
But note that this request takes no time to be performed. I directly get this error before the time goes out! Or any network activity occurs!
Another point: Since I post to the same target, can I use one instance of HttpWebRequest instead of creating new instance per each request? Such as:
In the constructor:
<br />
hTTPRequest = (HttpWebRequest) HttpWebRequest.Create(url);<br />
hTTPRequest.Proxy = new WebProxy("proxyServer", proxyPort);<br />
hTTPRequest.Method = "POST";<br />
hTTPRequest.KeepAlive = false;<br />
hTTPRequest.SendChunked = true;<br />
hTTPRequest.AllowWriteStreamBuffering = true;<br />
hTTPRequest.ContentType = "application/x-www-form-urlencoded";<br />
hTTPRequest.Timeout = 30000; (30 Secs)<br />
hTTPRequest.ReadWriteTimeout = 30000;<br />
In the thread’s method:
<br />
string postData = "Some params and values";<br />
byte[] Content = new byte[UTF8Encoding.UTF8.GetByteCount(postData.ToCharArray(), 0, postData.Length)];<br />
UTF8Encoding.UTF8.GetBytes(postData, 0, postData.Length, Content, 0);<br />
hTTPRequest.ContentLength = Content.Length;<br />
Stream writeStream = hTTPRequest.GetRequestStream();<br />
try<br />
{<br />
writeStream.Write(Content, 0, Content.Length);<br />
writeStream.Close();<br />
}<br />
catch<br />
{<br />
Log the error…<br />
} <br />
But for the second request I got the following error:
"This property cannot be set after writing has started."
Can anyone help me please?
|
|
|
|
|
You're not getting the response, so the request isn't being commited. Also, you should actually close your streams in the finally block of a try/catch in case of errors (finally is always executed regardless of err or not):
Stream s = ...
try
{
s.Write(...);
}
finally
{
if (s != null) s.Close();
} After you fill your request stream, call HttpWebRequest.GetResponse and see if that helps:
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
Console.WriteLine(response.StatusCode); See the documentation for HttpWebRequest and HttpWebResponse in the .NET Framework SDK for more information and examples, including examples of posting data.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Dear Stewart,
Thank you for your kind support. In real, I tried that, but I'm still getting the same error message in both cases
Any other ideas I'm more than confused
|
|
|
|
|
If the server is reporting a timeout, then it is there you have to look. Your client code looks alright (though I hope you actually did URL-encode your POST data), but remember that it's not the one reporting the error. It would seem that your server code has a problem where it is waiting for a request to finish or something similar. How quickly do you get an HttpWebResponse when you call HttpWebRequest.GetResponse . Put a breakpoint in there and see. Remember, if you're threading those threads won't block so your program won't appear to halt.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
I am trying to get the exact character widths (and thus position/placement) of Arabic text which I am writing to the screen.
I have been trying to use “GDI32.dll” GetCharacterPlacementW. This uses a structure GCP_RESULTS which in turn contains a pointer to the text buffer and pointers to several array. One of these arrays, lpDx receives the distances between adjacent character cells.
I understand that .NET doesn't directly support a call to an unmanaged function which passes a structure with array pointers.
Apparently, though, there are two methods by which this can be achieved:
1) By manually marshalling the structure.
2) By using Pointers, ie unsafe code.
I find that I am out of my depth with this.
Does anyone have any C#/VB code for calling unmanaged code passing a structure with multiple array pointers?
Is there any better/easier way? Uniscribe, perhaps? Does anyone have a C#/VB code example for getting character widths for Unicode text with contextual shaping and combining characters?
|
|
|
|
|
Use StructLayoutAttribute and for poinetrs in the structre use IntPtr trype. You can look into MSDN for more info and example.
Mazy
You're face to face,
With the man who sold the world - David Bowie
|
|
|
|
|
A string is a character array, and the address of a string is the address of the first character. SAme with other arrays. For those params, it's no problem for the default marshalers to handle this. Just be sure to use the StructLayoutAttribute with CharSet.Auto and UnmanagedType.LPTStr with the MarshalAsAttribute .
As far as marshaling the pointers, you'll have to pin them so that the GC doesn't move them (or garbage collect them, although that shouldn't happen until they're out of scope) while the unmanaged code is processing. For information on that, see the fixed keyword in the .NET Framework SDK, under the C# language specification section (or just type "fixed Statement" in the help index).
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Can anyone tell me how to read a File Property like the Title, Subject, Author...
System.IO.File can only read those simple File properties like File Size, Creation date...
I have tried using "Interop.DSOleFile.dll", it works...but It is not Strong Named....
I want something strong named that can read the File Property...
Thank You!!
|
|
|
|
|
You can make that interop assembly strong named. If you use VS.NET to import a COM typelib, before creating it right-click on your project, select Properties, and set your "Wrapper Assembly Key Name" or "Wrapper Assembly Key File" under the "Common Properties/General" section. If using tlbimp.exe from the .NET Framework SDK, you can use the /keyfile:FileName or /keycontainer:KeyName command-line switches.
To answer your first question, though - no. The .NET base class library does not support these additional streams. You have to either rely on interop'ing a COM library (like you've done) or P/Invoking all the necessary functions and defining the proper structures and consts (etc.).
There is a .NET library someone made and documented here on CodeProject that works pretty good. See the article, Accessing alternative data-streams of files on an NTFS volume[^].
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Hello everybody
After alot of sleepless nights, I have finally finish my newest website dedicated to serve C# programmers with a C# Resource Windows, I hope everyone will enjoy using it and I hope the moderator don't treat this post as a spam ^_^;;
http://www.csharpusa.com or http://www.csharpgames.net
This isn't really a website since it would only work on Microsoft Windows with Internet Explorer 6, sorry to the Linux folks X_x;
I was formerly known as the C#n00b on this forum and I asked stupid questions because I'm a newest n00b to C#, I would like to give everybody a funny joke.
One day, C#n00b wanna study programming so he asked an old wise programmer to teach him, the old wise programmer said:"just open visual studio .net and create a new windows application and press F5", so C#n00b follow the direction and did what the old wise man said, then he realize there's a window popped up, the old wise guy said:"see? you just made your first windows application", C#n00b is so happy and excited and said:"omg, I made a software, I'm now a programmer, hahahahaha".
the end, not funny? oh well, I thought it was kinda funny.
C# Resource Windows
http://www.csharpusa.com
http://www.csharpgames.net
Super Robot Wars English Game Project
http://www.shintasoft.com
|
|
|
|
|
Wierd sence of humor you have say's Yoda
Q:What does the derived class in C# tell to it's parent?
A:All your base are belong to us!
|
|
|
|
|
i cannot for the life of me figure out how to get this to return a string that is not formatted in scientific notation
is there a simple guide or set of examples somewhere on how to use IFormatProvider?
msdn doesn't seem to provide any examples
edit: i found an example, it uses a mask... but why does the msdn page mention special characters (d/c/etc) for formating?
where can i find a reference for the available masks?
|
|
|
|
|
This is a link to really good site on how to format numbers:
http://authors.aspalliance.com/aspxtreme/aspnet/types/numericformatstrings.aspx
|
|
|
|
|
You keep reading the wrong things. Did you try reading the documentation for the NumberFormatInfo , which implements IFormatProvider ? You don't even need to specify this for numeric types in string.Format (or any other formatting method like Console.WriteLine ). There's also a big section on formatting in the .NET Framework SDK, which should be your first stop for .NET-related documentation, articles, and examples.
There is a simple solution for the scientific notation:
string s = string.Format("{0:e}", myNum);
s = myNum.ToString("e");
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
|
If anyone like to contribute to thsi site, please contact us.
|
|
|
|
|
is there any way faster then
using split()?
the lines are all the exact same format, with no nulls, etc
this is what i am using:
while (html_sr.Peek() >=0)
{
txt_file = html_sr.ReadLine();
user_info = txt_file.Split('\t');
SQLAction.InsertUpdateUser(int.Parse(user_info[5]),user_info[2],int.Parse(user_info[4]),double.Parse(user_info[3]),date_modified,int.Parse(user_info[1]),int.Parse(user_info[0]));
}
|
|
|
|
|
The first obviouse thing is:
while (html_sr.Peek() >=0)
{
txt_file = html_sr.ReadLine();
Why not use:
while((txt_file = html_sr.ReadLine()) != null)
{
}
Now, you no longer have to perform the peek operation and your test is against a value you would get anyway. (Since the RealLine method already performs some operation to determine whether it is at the EOF why duplicate the effort)
EuroCPian Spring 2004 Get Together[^]
"You can have everything in life you want if you will just help enough other people get what they want." --Zig Ziglar
"Get in touch with your Inner Capitalist - I wish you much success!" -- Christopher Duncan, Lounge 9-Feb-2004
|
|
|
|
|
Thanks!
i had thought that Readline would throw an exception
now to test and see if this will provide any performance improvement
though i suppose most of my problem is the SQL method...
right now it proceses on average 170 of those lines per second, just trying to squash it down as much as possible
|
|
|
|
|
You should probably use some profiler to see what takes most time.
It probably is sql query. Make sure you're not opening the connection with each query, but open it once and do all the queries then.
|
|
|
|
|
thanks...
the query is actually a single stored procedure, but a complex one
|
|
|
|
|
If you're doing INSERTs on a SQL Server from a comma-delimited file, use BCP (Bulk Copy).
It can do up to 100,000 lines/second on a big machine and on desktop machines it processes up to 10,000 lines/second.
Perl combines all the worst aspects of C and Lisp: a billion different sublanguages in one monolithic executable. It combines the power of C with the readability of PostScript. -- Jamie Zawinski
|
|
|
|
|
unfortunatly the text file needs to be "processed"
|
|
|
|
|
Hi there
How can i restrict the appearance of child forms?
i only want 1 instance of a particular child form
how do i do that?
VisionTec
|
|
|
|