c#ÖжàÏß³Ìͬ²½½â¾ö·½°¸
c#ÖжàÏß³Ìͬ²½½â¾ö·½°¸
C#ÖжÔÓÚ¶àÏ̱߳à³ÌÓкܺõÄÖ§³Ö£¬³£ÓõÄÓÐÒÔϼ¸ÖÖ½â¾ö·½°¸£º
1. Lock(object) ¶ÔÐèҪͬ²½µÄ´úÂë¿é¼ÓËø£»
¡¡¡¡¡¡¡¡2. Monitor Class
¡¡¡¡¡¡¡¡3. ReaderWriterLock Class¡¡¡¡¡¡
4. Mutex Class
5. Semaphore
6. Event
Õâ´ÎÎÒÖ÷Ҫ˵һÏ Lock ºÍ Monitor¡£¶ÔÓÚLock Ïë±ØÓÐÒ»¶¨¶àÏ̱߳à³Ì¾ÑéµÄ³ÌÐòÔ±¶¼»áºÜÊìϤ£¬¿´Ãû×Ö¾ÍÖªµÀ´ó¸ÅÊÇʲôÒâ˼ÁË¡£Lock ¾ÍÊÇÒ»°ÑËø£¬¾Ù¸öºÜ²»ÑŵÃÀý×Ó¡£±ÈÈç˵ÎÒÃÇÈ¥ÉÏWC£¬µ±Äã½øÈ¥ºó¾ÍÒª°ÑÃÅËø×¡£¬ºóÀ´µÄÈËÖ»ÄܵÈÄã·½±ãÍêÁ˲ÅÄܽøÈ¥¡£
private string lockFlag = "LOCK";
public void GoWC(Person p)
{
lock (lockFlag)
{
Console.WriteLine("Begin");
Console.WriteLine("End");
}
}
LockʹÓÃÆðÀ´·Ç³£·½±ã£¬ÓÐÒ»µãÐèҪעÒâ¾ÍÊÇÄãͬ²½µÄ¶ÔÏó×îºÃÊÇprivate»òprivate static£¬ÒòΪÈç¹ûÕâ¸öͬ²½¶ÔÏóÊÇpublic»òinternal,¾ÍÓпÉÄܱ»ÆäËû³ÌÐòÖÐÆäËû²¿·ÖµÄ´úÂë»ñµÃ£¬ÕâÑùµÄ»°ÄãµÄlock¾ÍʧȥµÄ×÷Óã¬Ò²¾ÍÊÇ˵Õâ¸öWCµÄÔ¿³×Ö»ÄÜÓÐÒ»°Ñ£¬Ö»ÓнøÁËWCµÄÈ˲ÅÄÜ»ñµÃ£¬ÆäËûµÈ´ýµÄÈËÊÇûÓа취»ñµÃµÄ¡£
¡¡¡¡ÁíÒ»¸ö³£ÓõĽâ¾ö·½°¸ÊÇʹÓÃMonitor class¡£ monitor class ºÍlockÆäʵ±¾ÉíûÓÐÊ²Ã´Çø±ð£¬ÕâÄÑÃâ»áÈÃÈ˾õµÃ·Ñ½â£¬Æäʵ²»È»¡£¶ÔÓÚʹÓÃlock¹Ø¼ü×ÖÀ´Ëµ¾³£»á·¢ÉúÒ»ÖÖÈÃÈ˷dz£ÓôÃÆµÄÊÂÇé“Deadlock”,µ±personAÓµÓÐr
Ïà¹ØÎĵµ£º
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace ½«Ã¶¾Ù×÷Ϊ¼üÖµµÄÐÎʽ´æ´¢
{
enum Myenum
{
First=3,
Second ......
1.Á¬½ÓÊý¾Ý¿âÎļþ
<add name="LocalSqlServer" connectionString="Data Source=.\SQLExpress;Integrated Security=True;AttachDBFilename=|DataDirectory|TimeTracker.mdf;User Instance=true" />
SqlConnectionStringBuilderʵÀý»¯Ê±£¬ÒªÓõ½connectionString£¬È磺SqlConnectionStringBuild builder = new SqlCon ......
ÍêÉÆÁË“ÈçºÎÔÚC#ÖÐʹÓÃWin32ºÍÆäËû¿â”ÖйØÓÚEnumDesktops()º¯ÊýµÄ»Øµ÷´úÂ룬¿ÉÔËÐС£
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.InteropServices;
namespace ConsoleApplication1
{
class Program
{
delegate bool EnumDesk ......
Êý×é¸ÅÊö
C# Êý×é´ÓÁ㿪ʼ½¨Á¢Ë÷Òý£¬¼´Êý×éË÷Òý´ÓÁ㿪ʼ¡£C# ÖÐÊý×éµÄ¹¤×÷·½Ê½ÓëÔÚ´ó¶àÊýÆäËûÁ÷ÐÐÓïÑÔÖеŤ×÷·½Ê½ÀàËÆ¡£µ«»¹ÓÐһЩ²îÒìÓ¦ÒýÆð×¢Òâ¡£
ÉùÃ÷Êý×éʱ£¬·½À¨ºÅ ([]) ±ØÐë¸úÔÚÀàÐͺóÃæ£¬¶ø²»ÊDZêʶ·ûºóÃæ¡£ÔÚ C# ÖУ¬½«·½À¨ºÅ·ÅÔÚ±êʶ·ûºóÊDz»ºÏ·¨µÄÓï·¨¡£
int[] table; // not int table[];
ÁíÒ ......
ÓÉÓÚÏîÄ¿ÐèÒª,ҪʹÓÃc#Ãè»¸ßÆµÊµÊ±ÇúÏß.
µ«ÊÇÔÚC#ÏÂÓÉÓÚÃè»Í¼ÏñʹÓõÄÊÇGDI+,Ãè»Ð§ÂʺÜÓÐÎÊÌâ.Ò»µ©ÇúÏßÌ«¶à,¾Í»áÔì³ÉCPUʹÓÃÂÊÖ±ÏßÉÏÉý,ÂíÉÏìÉýµ½100%.
ÔÚGDI+ÏÂʹÓÃË«»º³åÒ²ÎÞ¼ÃÓÚÊÂ,Ë«»º³å±¾ÉíÖ»»á½â¾öÇúÏß¶àµÄʱºòÈ«ÆÁÉÁ˸ÎÊÌâ,µ«Ãè»Ð§ÂÊ»¹ÊÇÑÏÖØµÍÏÂ.
Æä¼äÓùý¶àÖÖ½â¾ö·½°¸:DRECT3D,DRIRECT2D,GDI,,,,,µÈµÈµÈµÈ ......