|
Control.CheckForIllegalCrossThreadCalls = false; will this cause any issues?
I have code in 2003 which access controls inside thread and so far it is going good. I placed this command in 2005 and tried it already and it looks OK, i want to make sure by making this "CheckForIllegalCrossThreadCalls" as false will not cause any serious issues. Do you think?
http://www.codeproject.com/csharp/threadsafeforms.asp[^] this should be the right choice but lot of rework
|
|
|
|
|
Of course setting the option to false will cause issues. Microsoft did not add a random unneeded check just for the fun of it.
Typical behaviour will be random hanging your entire GUI. This can happen on all systems, or just a few. It can also appear to be working fine, then suddently start hanging due to an update from Microsoft, a new OS, or whatever.
|
|
|
|
|
just use delegate for invoking them
Here is my code and it's work fine in vs2005
public delegate void CrossThreadHandle(object arg);
void SetLabelStatus(object txt)
{
this.labelDownloadStatus.Text=txt as string;
}
void dl_StatusChanged(Downloader sender, Downloader.DownloadStatus status)
{
CrossThreadHandle dLabel=new CrossThreadHandle(this.SetLabelStatus);
this.Invoke(dLabel,sender.Status.ToString());
Application.DoEvents();
}
Hope it would Help
|
|
|
|
|
|
can i make the setup to detect the .net framework automatically, before the setup of the application take place.so that i don't get the message .net framework is not installed in the machine.
Sonia Gupta
Soniagupta1@yahoo.co.in
Yahoo messengerId-soniagupta1
Love is Friendship and Friendship is Love....
|
|
|
|
|
Hi Sonia,
Assuming that you are using .net Setup & Deployment project in VS.
Create a Launch Condition - Add Registry Search - set the RegKey & Value property to:
Keys:
For the .NET Framework 1.0:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\v1.0
For the .NET Framework 1.1:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\v1.1
For the .NET Framework 2.0:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\policy\v2.0
Value:
For the .NET Framework 1.0: "3705"
For the .NET Framework 1.1: "4322"
For the .NET Framework 2.0: "50727"
Then add new LauchCondition and set the Condition property to:
For the .NET Framework 1.0:
REGISTRYVALUE = "3321-3705"
For the .NET Framework 1.1:
REGISTRYVALUE="3706-4322"
For the .NET Framework 2.0:
REGISTRYVALUE="50727-50727"
Hope that helps.
Regards,
Bhupi Bhai.
|
|
|
|
|
what is new launch condition and Condition property ?
Please explain
Sonia Gupta
Soniagupta1@yahoo.co.in
Yahoo messengerId-soniagupta1
Love is Friendship and Friendship is Love....
|
|
|
|
|
If you are working in VS - 2005 then you should be able to see a Button called Prerequisites on your Setup Project Property. Hit that button and gothrough.
Thanks
|
|
|
|
|
i have gone through that
i selected the second option there, choose the location where the application is residing
Sonia Gupta
Soniagupta1@yahoo.co.in
Yahoo messengerId-soniagupta1
Love is Friendship and Friendship is Love....
|
|
|
|
|
Insted you can select First Option know? It will download from Internet automatically when you deploy into customer place? If you select second option then .Net 2.0 Framework should go along with your application.
Choose which ever you want? And is it help out to you or no?
Thanks
|
|
|
|
|
will u please explain me the steps if i select the option 2
Sonia Gupta
Soniagupta1@yahoo.co.in
Yahoo messengerId-soniagupta1
Love is Friendship and Friendship is Love....
|
|
|
|
|
|
this does not explain the second option
can u come online at yahoo
soniagupta1@yahoo.co.in
Sonia Gupta
Soniagupta1@yahoo.co.in
Yahoo messengerId-soniagupta1
Love is Friendship and Friendship is Love....
|
|
|
|
|
Yup added ... mine is ct_prakash@yahoo.co.in
|
|
|
|
|
Optional parameters does not exist in C# ?
Sonia Gupta
Soniagupta1@yahoo.co.in
Yahoo messengerId-soniagupta1
Love is Friendship and Friendship is Love....
|
|
|
|
|
Here is from MSDN
Some languages (such as the Managed Extensions for C++ and Microsoft Visual Basic 2005) support the assignment of default values to arguments. For example, the following is a legitimate Visual Basic 2005 declaration that has default values for two of the arguments.
<code>
Visual Basic Copy Code
Public Sub MyMethod (a as Integer, _
Optional b as Double = 1.2, _
Optional c as Integer = 1)
</code>
You can use a parameter attribute to assign a default parameter value.
In Visual Basic and C++, optional parameters can be omitted when the method is called. In C# values must be specified for optional arguments.
For example, all the following Visual Basic and C++ examples are valid calls for MyMethod.
Visual Basic Copy Code
<code>
MyMethod(10, 55.3, 12)
MyMethod(10, 1.3) ' c == 1
MyMethod(11) ' b == 1.2, c == 1
</code>
C++ Copy Code
<code>
MyMethod(10, 55.3, 12);
MyMethod(10, 1.3);
MyMethod(11);
</code>
To retrieve the default value of an argument using reflection, get a ParameterInfo object for the parameter, and then retrieve the default value using the ParameterInfo.DefaultValue property. If there is no default value, the property returns Value.DBNull.
The following example displays the default values for MyMethod to the console.
Visual Basic Copy Code
<code>
Dim m As MethodInfo = t.GetMethod("MyMethod")
Dim ps As ParameterInfo() = m.GetParameters()
Dim i As Integer
For i = 0 To ps.Length - 1
Console.WriteLine("Default Value == {0}", ps(i).DefaultValue)
Next i
</code>
C# Copy Code
<code>
MethodInfo m = t.GetMethod("MyMethod");
ParameterInfo[] ps = m.GetParameters();
for (int i = 0; i < ps.Length; i++)
{
Console.WriteLine("Default Value == {0}", ps[i].DefaultValue);
}
</code>
C++ Copy Code
<code>
MethodInfo m = t->GetMethod("MyMethod");
ParameterInfo[] ps = m->GetParameters();
for (int i = 0; i < ps.Length; i++)
{
Console::WriteLine(S"Default Value == {0}", ps[i]->DefaultValue);
}
</code>
To invoke methods that have arguments with default values, use Type.Missing as a parameter value to the InvokeMember method. This enables the late-binding service to use the default value for the indicated parameter value. If Type.Missing is passed for a parameter that has no default value, an ArgumentException is thrown. It is important to note that not all compilers' binding mechanisms might respect these rules for Type.Missing. Some binders might not support this functionality, or might treat Type.Missing differently. When using Type.Missing, the default values do not have to be trailing.
The C# language does not support default arguments.
The following Visual Basic 2005 example shows how to use Reflection to invoke methods that have default arguments.
Copy Code
<code>
Option Strict Off
Imports System
Imports System.Reflection
Public Class OptionalArg
Public Sub MyMethod (a As Integer, Optional b As Double = 1.2, Optional c As Integer=1)
Console.WriteLine("a = " & a & " b = " & b & " c = " & c)
End Sub
End Class
Module Module1
Sub Main()
Dim o As New OptionalArg
Dim t As Type
t = GetType(OptionalArg)
Dim Param As Object()= {10, 20, 30}
t.InvokeMember("MyMethod", _
BindingFlags.Public Or _
BindingFlags.Instance Or _
BindingFlags.InvokeMethod Or _
BindingFlags.OptionalParamBinding, _
Nothing, _
o, _
New Object() {10, 55.3, 12})
t.InvokeMember("MyMethod", _
BindingFlags.Public Or _
BindingFlags.Instance Or _
BindingFlags.InvokeMethod Or _
BindingFlags.OptionalParamBinding, _
Nothing, _
o, _
New Object() {10, 1.3, Type.Missing})
t.InvokeMember("MyMethod", _
BindingFlags.Public Or _
BindingFlags.Instance Or _
BindingFlags.InvokeMethod Or _
BindingFlags.OptionalParamBinding, _
Nothing, _
o, _
New Object() {10, Type.Missing, Type.Missing})
End Sub
End Module
</code>
When using the preceding technique, trailing default arguments are considered even when the caller specifies no value. This is the most common way to invoke methods with default arguments.
|
|
|
|
|
One way to solve it is to use polymorphism method overloading:
private void MyMethod(int x, int y, int z)
{...}
private void MyMethod(int x, int y)
{
MyMethod(x, y, 10);
}
private void MyMethod(int x)
{
MyMethod(x, 5);
}
-- modified at 2:56 Tuesday 7th August, 2007
|
|
|
|
|
i think we r astraying from the right topic.don;t u thnk it is function overloading.
Sonia Gupta
Soniagupta1@yahoo.co.in
Yahoo messengerId-soniagupta1
Love is Friendship and Friendship is Love....
|
|
|
|
|
No, this is the only way to simulate optional parameters in C#
Christian Graus - Microsoft MVP - C++
"I am working on a project that will convert a FORTRAN code to corresponding C++ code.I am not aware of FORTRAN syntax" ( spotted in the C++/CLI forum )
|
|
|
|
|
ok
Sonia Gupta
Soniagupta1@yahoo.co.in
Yahoo messengerId-soniagupta1
Love is Friendship and Friendship is Love....
|
|
|
|
|
See the code snippet copied from MSDN. Hope this helps...
using System;<br />
public class MyClass <br />
{<br />
<br />
public static void UseParams(params int[] list) <br />
{<br />
for (int i = 0 ; i < list.Length; i++)<br />
{<br />
Console.WriteLine(list[i]);<br />
}<br />
Console.WriteLine();<br />
}<br />
<br />
public static void UseParams2(params object[] list) <br />
{<br />
for (int i = 0 ; i < list.Length; i++)<br />
{<br />
Console.WriteLine(list[i]);<br />
}<br />
Console.WriteLine();<br />
}<br />
<br />
static void Main() <br />
{<br />
UseParams(1, 2, 3);<br />
UseParams2(1, 'a', "test"); <br />
<br />
int[] myarray = new int[3] {10,11,12};<br />
UseParams(myarray);<br />
}<br />
}
|
|
|
|
|
One way to do this, is to use the params keyword. The only problem is that you have no control over what the developer puts in, but this is how things like string.Format work. Example:
public void DoSomething(params string[] items)
{
if (items != null && items.Length > 0)
{
foreach (string item in item)
{
}
}
}
Deja View - the feeling that you've seen this post before.
|
|
|
|
|
How can we cast a string to stream?
I want to load a string in XmlDocument.load(string)
-- modified at 1:56 Tuesday 7th August, 2007
Pavas
|
|
|
|
|
if your string contains a xml file you can simply load it into the xmDocument using LoadXml Method however if you need the stream it's can not be Casted you must write your string to a Stream by your self here it is too
<br />
string str;
<br />
XmlDocument xmlDoc=new XmlDocument();<br />
xmlDoc.LoadXml(str);<br />
<br />
<br />
MemoryStream stream = new MemoryStream();<br />
<br />
StreamWriter sw = new StreamWriter(stream);<br />
sw.Write(str);<br />
<br />
good luck
|
|
|
|
|
can i send the control to somewhere , like in vb goto statement.
Sonia Gupta
Soniagupta1@yahoo.co.in
Yahoo messengerId-soniagupta1
Love is Friendship and Friendship is Love....
|
|
|
|