PDA

View Full Version : کاهش مصرف CPU ؟



Samsam2010
چهارشنبه 13 آبان 1388, 14:05 عصر
دوستان زمانی که برنامه من شروع به کپی میکنه برنامه هنگ میکنه و تمام قدرت سی پی یو رو میگیره من میخواستم بدونم میشه میزان مصرف برنامه ام از سی پی یو کم کنم که برنامه هنگ نکنه یا اصلا چرا برنامه در زمان کپی هنگ میکنه

mpmsoft
چهارشنبه 13 آبان 1388, 14:21 عصر
Public Function CopyFileAny(currentFilename As String, _
newFilename As String)
On Error GoTo ErrHan
Dim A%, buffer%, Temp$, fRead&, fSize&, b%
A = FreeFile: buffer = 4048
Open currentFilename For Binary Access Read As A
b = FreeFile
Open newFilename For Binary Access Write As b
fSize = FileLen(currentFilename): fRead = 0
While fRead < fSize

If buffer > (fSize - fRead) Then buffer = (fSize - fRead)
Temp = Space(buffer)
Get A, , Temp
Put b, , Temp
fRead = fRead + buffer: DoEvents
Wend

Close A: Close b: CopyFileAny = 1
Exit Function
ErrHan:
CopyFileAny = 0
End Function

xxxxx_xxxxx
چهارشنبه 13 آبان 1388, 14:24 عصر
عمل کپی شدن فایل هارو به یک Thread جدید بسپارید.
آموزش Multithreading در همین بخش هست. جستجو کنید.

یا راه ساده تر اینکه اگر تعداد فایلهایی که کپی میشه خیلی زیاد هست در بین دستورات کپی از DoEvents استفاده کنید.

.:KeihanCPU:.
چهارشنبه 13 آبان 1388, 15:23 عصر
بهترین راه استفاده از چند ریسمانی هست
http://barnamenevis.org/forum/showpost.php?p=534963&postcount=18