|
I have reviewed both your thread and the article on implementing IOCP through C# via Win32. I have developed an IOCP server in C++ (Native) and have tested it thoroughly (at Microsoft) confirming that there is no contest between the thread per client model and IOCP model servers (when under load of course).
My question for both of you is: how did you implement a true IOCP server without using the WIN32 API? In the article it indicates the following:
"IOCP thread support has not been made available to C# developers through the “System.Threading” namespace. We need to access the Win32 API calls from the Kernel32.dll."
Being fairly new to C# and recently tasked with solving a scalability problem with a C# thread per client server I am interested to know how you created an IOCP server in C# without using the API? Or are you using the API? Can you explain? The code snippet at the beginning of this thread does not illustrate the use of IOCP so I need some further clarification.
Also, have you heard if there will be a way to create an IOCP C# server from version 2.0 of the framework? It is available now as a BETA but I have not looked into it yet; have either of you two inquired about this?
Thanks very much.
James
|
|
|
|
|
here is the code:
Process p = Process.GetProcessByID();
...
p.close();
p.dispose();
i use close() and dispose() both to release resource.is it correct ? what is the difference between them ?
and in this code:
Process[] p = Process.GetProcessesByName();
How to release the resource properly ?
|
|
|
|
|
Looking at the IL (Intermediate Language) for the Process class reveals that calling Dispose explicitly calls Close . If you don't call either and the destructor calls Dispose , then the process handle is freed but other native resources are not ( memory leak! ).
Calling Close is sufficient, but it never hurts to call Dispose either.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Thanks!
Looking at the IL (Intermediate Language) for the Process class reveals that calling Dispose explicitly calls Close
where can i find the IL help ?
|
|
|
|
|
It's not "help" - it's the intermediate language contained in the modules that are embedded in assemblies - the very heart of the Common Language Infrastructure (CLI) that makes .NET possible.
You can use the IL Disassembler (ildasm.exe) that ships with the .NET Framework SDK, in the SDK's bin directory. Documentation about the IL instruction codes can be found in the .NET Framework SDK.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Here's a tip, use a using block to make it both easier and safer to release Disposable resources:
using (Process p = Process.GetProcessByID())
{
...
}
No need to worry about calling Dispose (or Close).
Regards,
Alvaro
Give a man a fish, he owes you one fish. Teach a man to fish, you give up your monopoly on fisheries.
|
|
|
|
|
Hi !
I try to generate Crystal Report with Untyped Dataset.
When i used typed dataset, CrystalReport wizard's shown this dataset.
But my dataset provided from function and there are untyped (so not shown in the CR wizard).
If anyone have a link or answer ....
Thanks a lot
Alex
(Sorry for my bad english :p)
|
|
|
|
|
If you're using typed DataSet s, just make sure your methods return that Type. You can also design your report to use fields from an untyped DataSet , but you must make sure that those untyped DataSet have the same tables and field names/types.
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
I started with Crystal Reports from this article
Crystal Reports
Anyway look through Internet it's a lot of information outhere.
http://aspalliance.com/articleViewer.aspx?aId=265&pId=2
xedom developers team
|
|
|
|
|
.
modified 1-Dec-11 1:27am.
|
|
|
|
|
If you're looking for samples, the best thing to do is try searching. The following google result turned up many good projects that you could use in your projects: http://www.google.com/search?q=C%23+FTP[^].
As far as telnet goes, there really isn't a protocol. "Telnet" simply describes a socket connection with a known character encoding. For example, I can telnet to my mail server on port 25 and type SMTP commands directly, or telnet to my web server on port 80 and make requests. Telnet is just a bare-bones TCP socket connection. The protocol is whatever protocol the daemon you're connecting to uses, like HTTP, SMTP, etc. See the TcpClient class in the .NET Framework SDK.
For what is traditionally thought as telnet, you need to echo input and output. Using the TcpClient , get the NetworkStream using TcpClient.GetStream . You use this to send commands and receive output. If you expect this to be all text, instantiate a StreamReader and a StreamWriter to read and write from the NetworkStream .
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Please check www.klausbasan.de
hjhjhjhjhjh
|
|
|
|
|
Hi all,
I want to get some sample code or good tutorial to program
the USB port.
I just want to use the USB port like I could make with a
serial port or an ethernet port (I think that with USB it
will be the combination of both), just to send and receive
information in an assyncronous way (maybe). It's easy!!
Do you know anyway to begin?
Thank you in advance,
Edgar
__________________________________________
Edgar Berengena Moreno
Software Engineer
Appeyron Research
|
|
|
|
|
EdgarBM wrote:
Do you know anyway to begin?
You might start by searching google for examples. The following search turned up several good results: http://www.google.com/search?q=C%23+USB[^].
Because of the shear volume of native calls, the typical solution is to build a mixed-mode Managed C++ assembly. You can then reference the assembly in a C# project for easier use. Many of the articles include sample assemblies that already contain the necessary functionality. A link in the third search result contains sample code on MSDN: http://msdn.microsoft.com/msdnmag/issues/02/10/netserialcomm/[^].
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Hello!
when I add a new item to my ListBox ,I want to choose a new color for
it(different color from other items).
Can I make it? or is there any method I can distingush some items from
other items except by selecting them.
Or to I have rewrite the ListBox ,to make it have this function.
waiting for help
|
|
|
|
|
You have to owner-draw your ListBox . Since its Items collection property can take any object, you can extend the ListBox and override the protected CreateItemCollection method to instantiate and return a typed collection, which you could inherit from CollectionBase (or make your own from scratch). You don't have to do this, but it gives you a little more control.
With or without doing that, when drawing your items, you could either imply a backgroud color based on the item position, or check if the item is of a certain type. For example, if the type is the class that follows, cast it and grab the BackColor property:
public class ListBoxItem
{
private string text;
private Color backColor;
public ListBoxItem(string text, Color backColor)
{
this.text = text;
this.backColor = backColor;
}
public string Text {get{return text;} set{text = value;}}
public Color BackColor {get{return backColor;} set{backColor = value;}}
} As far as owner-drawing the ListBox , there are many articles about that here on CodeProject. Just try the following search: http://www.codeproject.com/info/search.asp?cats=3&cats=5&searchkw=ListBox+owner+draw[^].
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
I am trying to make automated ebay bidding program...
I have tried with web browser control and webclient class(c#)....
Web Browser control is too slow and hard to use in C#..
So I tried with webclient class.. Sending with form data was easy.. but the problem is cookie.. The cookie from header data can be read and set again.
But THE IMPORTANT PART is the cookies made form webbrowser itself by javascript..
Ebay send me a page wite this message "Your web browser doesn't suppor cookeis..".
I do not know how to read this cookes and set again...
Please help me frieds~~
kmmccc form south korea..
|
|
|
|
|
Are you trying to screen scrape the data off the page and have your application interpret it? It kind of sounds like that is what you are doing.
There are details about how to access eBay programmatically on eBay's developer site[^]
"You can have everything in life you want if you will just help enough other people get what they want." --Zig Ziglar
The Second EuroCPian Event will be in Brussels on the 4th of September
Can't manage to P/Invoke that Win32 API in .NET? Why not do interop the wiki way!
My Blog
|
|
|
|
|
Hi,
1. I Designed MyEditor inherited UITypeEditor
public class MyEditor: System.Drawing.Design.UITypeEditor
{
private IWindowsFormsEditorService edSvc = null;
public override object EditValue(ITypeDescriptorContext context,
IServiceProvider provider, object value)
{
if (context != null&& context.Instance != null
&& provider != null)
{
edSvc = (IWindowsFormsEditorService)provider.GetService(typeof
(IWindowsFormsEditorService));
if (edSvc != null)
{
// Form Create
FormMyEditor dlg = new FormMyEditor((string) value);
if( edSvc.ShowDialog(dlg) == DialogResult.OK)
{
context.OnComponentChanged();
}
}
}
return value;
}
public override UITypeEditorEditStyle GetEditStyle
(ITypeDescriptorContext context)
{
if (context != null && context.Instance != null)
{
return UITypeEditorEditStyle.Modal;
}
return base.GetEditStyle(context);
}
}
2. Mapped MyEditor at Property
public class UserInfo
{
private string userName = string.Empty;
[Category("UserInfo"),DesignOnly(false)]
[Editor(typeof(MyEditor), typeof(UITypeEditor))]
public string UserName
{
get {return userName;}
set { userName = value; }
}
public UserInfo(){}
}
3.At RunTime, generally, MyEditor worked well at form application.
but, MyEditor did not work in other form application.
.NET called default string editor.
why .NET didn't call MyEditor in some case ?
thanks to regards!
|
|
|
|
|
Do we have the concept of meta tags in RTF file such that it should hold the object of different file like ladder diagrams?
Does it calls for OLE in C#? Please guide
regards
|
|
|
|
|
This really has nothing to do with C#. If you're wondering about the RTF specifications, see http://support.microsoft.com/default.aspx?kbid=86999[^], which contains the link to download the RTF v1.7 specifications.
BTW, OLE isn't related to .NET, either. It's its own specification. .NET can interop with OLE and expose automation interfaces, but this isn't recommended. If you know anything about native COM with C++ or ATL, I suggest you use that. Exposing COM interfaces from .NET still requires the .NET Framework to be installed on the machine viewing the RTF (if you want them to see/use your OLE controls).
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Hey the Remoting which is available in Normal Windows Application is not present in a Windows CE environment so if any one knows what alternatives are available and how they can be used to achieve remoting in a Windows CE environment please notify. Reply Soon.
Thankyou.
|
|
|
|
|
XML Web Services might be a possibility, but there's a lot of serialization overhead for a Pocket PC/Windows CE and you're limited to HTTP's client-response/server-request mechanism, so you can't use events.
The common approach described in articles both here on CodeProject, MSDN, and elsewhere on the web typically drop down to a lower level, defining a socket protocol. One such good article here on CodeProject is Creating Desktop Application Remote Controls with the .NET Compact Framework (Part 1)[^].
Microsoft MVP, Visual C#
My Articles
|
|
|
|
|
Hi ..
please see the code below..
I have two tables Centrals and Devices both having Central_Id as a common field..I am able to display the Centals table value in the first datagrid (dataGirdCentral).However on click of each cell on the central_id i want the corresponding entries of Devices table to be shown in the 2nd datagrid dataGridDevices..how do i do that...
private void loadCentralDevices()
{
ds = new DataSet();
//Getting schema of Centrals table
DataTable centralDt = new DataTable("Centrals");
String query = "Select * from Centrals";
OleDbDataAdapter da = new OleDbDataAdapter(query,ConfigurationSettings.AppSettings["MsAccess_ConnectString"]);
da.FillSchema(centralDt, SchemaType.Source);
ds.Tables.Add(centralDt);
//Getting schema of Devices table
DataTable deviceDt = new DataTable("Devices");
String query1 = "Select * from Devices";
da = new OleDbDataAdapter(query1,ConfigurationSettings.AppSettings["MsAccess_ConnectString"]);
da.FillSchema(deviceDt,SchemaType.Source);
ds.Tables.Add(deviceDt);
DataRelation dr = new DataRelation("Central_Devices_Relation",
centralDt.Columns["Central_ID"], deviceDt.Columns["Central_Id"]);
ds.Relations.Add(dr);
//create a dataview of the data
DataView centralVw = new DataView(ds.Tables["centralDt"]);
//giving access to Centrals table
centralVw.AllowDelete=true;
centralVw.AllowEdit = true;
centralVw.AllowNew = true;
//set the grid source to the author view
dataGridCentral.DataSource = centralVw;
//hook up the event handler
dataGridCentral.CurrentCellChanged+= new EventHandler(this.dataGridCentral_CellChanging);
}
private void dataGridCentral_CellChanging(object sender, EventArgs eArgs)
{
????? what do i write here to get the corresponding values?
}
Breath dot net
|
|
|
|
|
Make the nested grid in the ID column. You must design the colum as template <templatecolumn>. Then in the grid_ItemDataBound you assign the data to the second data grid. This is the way how I would go.
Vasek
Vasek
VB6, C#, MS DNA, MS.NET
Software Developer
|
|
|
|