|
Any body please tell whats the difference between keyword and reserved word
and also tell that if,else,while are keywords or reserved words
Please reply thanx
ihtesham
|
|
|
|
|
All keywords are reserved words in C# . This means u cannot use them as identifiers in your code .
if, else, while are keywords
|
|
|
|
|
Hi,
Since the reader may not be able to read all the data in 1 time. there's a need to read the data from the WebResponse for several times.
I've read some samples that uses a fixed buffer size, say 4096 bytes. Keep reading until all the data are read.
What is the advantage of using a fixed buffer size?
Why not just reading like the following code segment?
WebResponse response = request.GetResponse();
Stream responseStream = response.GetResponseStream();
BinaryReader reader = new BinaryReader (responseStream);
int bytesRead = 0;
byte[] result = new byte[response.ContentLength];
while(bytesRead < result.Length)
{
int bytesToRead = result.Length - bytesRead;
bytesRead += reader.Read(result, bytesRead, bytesToRead);
}
thanks
|
|
|
|
|
khchan wrote:
What is the advantage of using a fixed buffer size?
Why not just reading like the following code segment?
Because not always you'll have the Content-Length header, so you won't know how much to read. Did you ever try a download that IE couldn't show the '% complete'? That's why: in the .NET world, response.ContentLenght can return -1.
One advantage of the read 4k at a time approach is if are scanning through a page looking for some information (e.g., with a XmlReader constructed on top of the ResponseStream), and you may not need to read everything in an array.
And, at last, if you're building something with the ResponseStream (e.g., a string) and won't keep the byte[]. If you allocate arrays bigger than 85k, the GC will send them to a special area were they're not moved when collected, and if you have lots of huge (85k) temporary objects this can lead to bad GC performance.
Besides that, it's just habit and people code things without really asking "hey, why should I do this way?".
Yes, even I am blogging now!
|
|
|
|
|
I am trying to get an understanding about making classes thread-safe.
Since the constructor is called just once for each instance of a class, does it follow that no other consideration needs to be given to ensure the constructor is thread-safe?
Thanks for any help
|
|
|
|
|
Shayne Husson wrote:
I am trying to get an understanding about making classes thread-safe.
Since the constructor is called just once for each instance of a class, does it follow that no other consideration needs to be given to ensure the constructor is thread-safe?
No. However the new Operator[^] is not the problem as it (as you already mentioned) just creates an object, invokes the constructor and returns a reference to the newly created object. This will be thread-safe as long as the constructor does not access any outside object (public MyClass() {} for example is no problem at all). But let's assume you have something like this:
public MyClass(object someObject)
{
}
If you use this constructor in a multithreaded scenario you might end up having concurrent access of someObject . Now if you don't have a synchronization mechanism one thread might end up accessing someObject in an inconsistent state. So ultimately the need for synchronization in the constructor really depends on if and what you're trying to do with any objects which are known outside the constructor.
Best regards
Dennis
|
|
|
|
|
Just a little hint I forgot to mention in my previous post: when you dynamically create instances of anything derived from Control[^] be very careful in which thread you create them (see Multithreaded Windows Forms Control Sample[^] for details).
Best regards
Dennis
|
|
|
|
|
Cheers that makes things clearer for me.
|
|
|
|
|
Hey,
I am not sure if this is the correct place to put this, but I am currently localizing an active project that is using .resx files. While the developers are making simple changes, it seems to randomly re-order the files. So I was wondering if anyone knew of a good file difference program (like Beyond Compare or Win Diff) that can handle .resx files that keep switching order but not neccessarily data.
Thanks,
Brian
If you start a fire for a man, he will be warm for a day. If you start that same man on fire, he will be warm for the rest of his life.
|
|
|
|
|
Just came to the realization when creating an image list and pointing it to an icon file .ico that contains 16X16, 24X24, 32X32 size images that you can't specify which one to use.
I thought this was just a limitation of the visual studio property page, but then I started digging and I see no reference anywhere in .net to indexed icon files. Every icon related function seems to work with the 0th image by default.
For example when you use ImageList.Add(pathtoiconfile) you get no option to specify which image in the icon file to use.
Am I missing something here or are icon files with more than one image in them just not supported?
|
|
|
|
|
John Cardinal wrote:
Am I missing something here or are icon files with more than one image in them just not supported?
IIRC, not supported... not yet anyway. I think that's uspposed to be resolved in the .NET Framework 2.0.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Can someone please help me with this? If I obtain a lock on an object and then spawn a new thread from within the method that obtained the lock, does the new thread have access to the locked object? It seems intuitive that it would, but its important I know for sure.
private void Method1()
{
lock(lockedObject)
{
Thread th = new Thread(new ThreadStart(SpawnMethod2));
th.Start();
}
}
private void SpawnMethod2()
{
// do something with lockedObject....
}
|
|
|
|
|
I would assume it does because the new thread really starts in ur SpawnMethod and ur lock is effective in your Method1. It wouldn¡t be too hard to test anyway, try it out with a dummy app.
Apart from that, I would consider using System.Threading.Monitor.Enter/Exit for thread-safe objects. With the lock statement u risk throwing an exception that could deadlock ur object or what's worse, ur type if its a static method.
This wont happen with Monitors:
private void Method1()
{
try
{
Monitor.Enter(lockedObject);
Thread th = new Thread(new ThreadStart(SpawnMethod2));
th.Start();
}
finally
{
Monitor.Exit(lockedObject);
}
}
|
|
|
|
|
Here's what I've found, and I hope I tested this correctly:
1. if you lock an object and then simply call a method from inside the lock, the currentthread maintains the lock in the called method
2. if you lock an object and then spawn a new thread and attempt to access the locked resource from the new thread, you must wait until the initial thread releases the lock
How I determined this was to add "lock(lockedObject)" (yes, I know I shouldn't use it but its just for this test) to all three methods: 1. the initial method (Method1), 2. the called method (Method2), and 3. the method the new thread calls (Method3).
The initial thread obtains the lock and calls Method2, which also requests a lock on the object. Because the thread in Method2 matches that of Method1 (as determined by outputting the currentthread's name), control passes right through Method2's lock with no problem and executes whatever code I have inside its lock().
However, if I access the lock in Method1, spawn a new thread (naming it, so I can check the flow of control), and attempt to access the lock on Method3, it waits momentarily until control passes through Method1, thus releasing the lock on the object and allowing Method3 to obtain the lock. At that point, code inside Method3's lock begins to execute.
I hope this is a sound way of determining this. I am somewhat of a newbie when it comes to threading issues, and I'm having to learn a lot of stuff just by performing my own little tests. If anyone sees a problem with my methodology, please help me out.
|
|
|
|
|
Skynyrd wrote:
Apart from that, I would consider using System.Threading.Monitor.Enter/Exit for thread-safe objects. With the lock statement u risk throwing an exception that could deadlock ur object or what's worse, ur type if its a static method.
No it wouldn't. The lock Statement[^] is exactly doing what you suggest to do manually (see C# Language Specification: 8.12 The lock statement[^]).
Best regards
Dennis
|
|
|
|
|
eyoung70 wrote:
If I obtain a lock on an object and then spawn a new thread from within the method that obtained the lock, does the new thread have access to the locked object?
Take a look at the documentation of the Monitor.Enter() Method[^] to understand what happens when you use the lock statement[^]. In short you need to use it everywhere where threads might concurrently access an object while it might be in an inconsistent state. This happens when one thread begins to change data of the object, is interrupted and another thread accesses the (now inconsistent) object. It has nothing to do with in which thread another concurrent thread was originally created.
Best regards
Dennis
|
|
|
|
|
The rule is tremendously simple:
The lock is per thread. Is some other thread tries to lock it, it'll be blocked.
It doesn't matter which object or which method. All that matters is wich thread.
HTH.
Yes, even I am blogging now!
|
|
|
|
|
If I have a single WebBrowser control (either the managed wrapper in 2.0 or the ActiveX instance), is there anyway I can force it to draw to the screen multiple times without creating multiple instances of the control? Basically what I want to do is:
-------------------
<draw some html in here>
-------------------
<draw other html here>
-------------------
and so on. I know I can do this with the RichTextBox via P/Invoke (MSDN article on that here[^]), but that same P/Invoke trick doesn't seem to work on the WebBrowser control.
Any remotely useful information on my blog will be removed immediately. There are 10 kinds of people in the world. Those who have heard of the ubiquitous, overused, worn-out-like-an-old-shoe binary "joke" and those who haven't.
Judah Himango
|
|
|
|
|
Hello all
I made a desktop application the useres enter data in text boxes but when the user enter this Char " ' " make confilect with with SQL Statement
eg.
Select * from Names where Name='"+Name+"'
if Name contain any ' it will make SQL statment error
pleae help
Hay
|
|
|
|
|
Someone once said in this forum "Sql string concatenation is sooooo 1990s" Do not use string concating for sql statements, that opens you up to Sql injection attacts. Instead, use parameterized queries, which will also take care of your char apostrophe problem:
SqlCommand command = new SqlCommand("Select * from Names where Name = @Name");
command.Parameters.Add("@Name", myNameVariable);
Any remotely useful information on my blog will be removed immediately. There are 10 kinds of people in the world. Those who have heard of the ubiquitous, overused, worn-out-like-an-old-shoe binary "joke" and those who haven't.
Judah Himango
|
|
|
|
|
Hi, my name is:
';DELETE FROM Names;--
can you enter my name in the name paramand test it works for me please.*
* dont do this really, just make sure you use parameterized queries for important data
|
|
|
|
|
|
Hi all,
I am having a doubt, whether we can use C# for programming graphics environments instead of using OpenGL. I am not familiar with OpenGL, I have tried a couple of times to learn it, but not interested. But rather i am more interested in learning C#, if we can develop graphics environments in C#. I want to develop some simple applications like creating an environment(Ex: room) with objects like sphere, cube, pyramid etc...)
The main question is can we use C# for developing the applications that we develop using OpenGL?
Thanks in advance,
Suman.
Suman
|
|
|
|
|
A moot question considering your comparing apples and oranges. C# is a general purpose language for writing applications while OpenGL is an API Library, not a language.
You can use C# to write a graphics environment and have it call OpenGL functions to actually draw the visuals on screen.
RageInTheMachine9532
"...a pungent, ghastly, stinky piece of cheese!" -- The Roaming Gnome
|
|
|
|
|
Hi,
yep thts wht i am asking/looking for, can't we draw visuals on screen using C# alone without OpenGL?
Suman.
|
|
|
|