الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

Fee Variable Memory

بدأه aymanmoftah في 5 سبتمبر 2009 · 5 رد · 555 مشاهدة · في Microsoft Visual Basic.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

if i have an object like

dim obj as object=create_object("application.excell')
i do some function from obj 
and if i write
set obj1=nothing
and i want to build dll during main system run
gave error for bulding application.ex....
because i catch by main system
although i set nothing to object ,
how i can free memory from any objects and variables

المطلوب من السابق تفريغ الذاكرة من ملف مكتبي مستخدم

#2

إذا كانت هناك دالة مثل Close أو Dispose يجب المناداة عليها أولا قبل تحديد محتوى الكائن في فراغ.

تحياتي...

#3

بعد ظهور نافذة Excel قم بزيادة مستند جديد و تحرير محتوى خلية...

الكود الأول :

عندما نفرغ محتوى الكائن exlApp لا يتجاوب معنا Excel فينتهي التطبيق و يبقى Excel

		Dim exlApp As New Excel.Application()
		exlApp.Visible = True
		Console.Read()
		exlApp = Nothing

الكود الثاني : يتجاوب معنا Excel و يطلب منا تسجيل المستند المحرر ثم ينغلق.

		Dim exlApp As New Excel.Application()
		exlApp.Visible = True
		Console.Read()
		exlApp.Quit()
		exlApp = Nothing

أتمنى أن أكون قد فهمت سؤالك.

تحياتي...

تم تعديل هذه المشاركة بواسطة محمد رضى في 5 سبتمبر 2009 في 16:31

#4

مشكور على الرد

انا لم اقصد فقط المكتبة الخاصة ب اكسل ولكن كمثال

اذا انا عملت مكتبة خاصة بي dll كيف يمكن اضافة دالة

dispose

لها

هل عند

finalize

ولكن لا تعمل

واذا اردت بناء الكتبة مرة اخرة اثناء تشغيلي البرنامج وعملت

nothing

للمتغير الذي يستدعي المكتبة

#5

فيما يلي كود لفئة تدعم الدالة Dispose. لدعم هذه الدالة يجب أن تنفد الفئة الواجهة IDisposable. الكود :

Public Class Class1
	Implements IDisposable

	Private disposedValue As Boolean = False		' Dispose للتحقق من المناداة عدة مرات على الدالة

	' IDisposable
	Protected Overridable Sub Dispose(ByVal disposing As Boolean)
		If Not Me.disposedValue Then
			If disposing Then
				' TODO : Free managed objects
			End If

			' TODO : Free non managed objects
			' TODO : Set nothing to fields
		End If
		Me.disposedValue = True
	End Sub

#Region " IDisposable Support "
	' This code was added by Visual Basic to implement a correct model that could be deleted
	Public Sub Dispose() Implements IDisposable.Dispose
		' Don't edit that code. Add your code in Dispose(ByVal disposing As Boolean)
		Dispose(True)
		GC.SuppressFinalize(Me)
	End Sub
#End Region

End Class

يكفي أن تزيد السطر Implements IDisposable و تضغط على الزر Enter حتى يقوم IDE بزيادة الكود اللازم لتنفيد الواجهة و دالتها Dispose مع التعليقات المساعدة.

تحياتي...

#6

مشكور على الرد يا اخ محمد رضى

مواضيع مشابهة